본문 바로가기

programming study

(889)
[항해99 1기] [Chapter2-2] 자료구조, 알고리즘 (10) (2021.3.12) Baekjoon Online Judge 백준 온라인 저지 사이트의 문제 풀이 10815 문제 링크 # 상근이의 숫자 카드의 개수 N = int(input()) # 숫자 카드에 적혀있는 정수 cards = list(map(int, input().split())) # 정렬 cards.sort() # 구분할 카드 수 M = int(input()) # 숫자 카드인지 구분할 정수 nums = list(map(int, input().split())) # 이분탐색 for x in nums: # 카드를 소유한 경우 check = True # 시작점 start = 0 # 끝점 end = N - 1 # 중간점 mid = (start + end) // 2 while start cards[mid]: start = mid + ..
[항해99 1기] [Chapter2-1] 자료구조, 알고리즘 (9) (2021.3.11) Baekjoon Online Judge 백준 온라인 저지 사이트의 문제 풀이 2606 문제 링크 # 컴퓨터의 수 n = int(input()) # 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수 c = int(input()) # 감염 여부 체크 infested = [] # 인접한 컴퓨터 딕셔너리 computer = {} for i in range(1, n + 1): computer[i] = [] # 입력 받기 for _ in range(c): # a: 감염된 컴퓨터 b: 인접 컴퓨터 a, b = map(int, input().split()) computer[a].append(b) computer[b].append(a) # DFS 선언 def DFS(computer, cur_com, infested):..
[항해99 1기] [Chapter2-1] 자료구조, 알고리즘 (8) (2021.3.11) Baekjoon Online Judge 백준 온라인 저지 사이트의 문제 풀이 1. 트리 뿌리와 가지로 구성되어 거꾸로 세워놓은 나무처럼 보이는 계층형 비선형 자료 구조 비선형구조: 표현에 초점을 맞춘 자료구조 cf) 선형구조: 자료를 저장하고 꺼내느 것에 초점이 맞춰져 있다. 1.1 용어 정리 Node: 트리에서 데이터를 저장하는 기본 요소 Root Node: 트리 맨 위에 있는 노드 Level: 최상위 노드를 Level 0으로 하였을 때, 하위 Branch로 연결된 노드의 깊이를 나타냄 Child Node: 어떤 노드의 하위 레벨에 연결된 노드 Leaf Node: Child Node가 하나도 없는 노드 Sibling: 동일한 Parent Node를 가진 노드 Depth: 트리에서 Node가 가질 수 있..
[항해99 1기] [Chapter2-1] 자료구조, 알고리즘 (7) (2021.3.10) Baekjoon Online Judge 백준 온라인 저지 사이트의 문제 풀이 4949 문제 링크 while True: string = input() if string == ".": break # 먼저 들어온 괄호가 먼저 나가게 되므로 스택 자료구조형을 사용한다 stack = [] # 괄호 탐색 for x in string: # 여는 괄호 발견시 스택에 쌓아두기 if x == "(" or x == "[": stack.append(x) # 스택의 마지막 원소의 괄호와 문자열의 괄호가 짝이 맞는지 검사 elif x == ")": if not stack or stack[-1] == "[": print("no") break elif stack[-1] == "(": stack.pop() elif x == "]": ..
[항해99 1기] [Chapter2-1] 자료구조, 알고리즘 (6) (2021.3.10) 01. 정렬 데이터를 순서대로 내열하는 방법 버블 정렬 arr = list(map(int, input().split())) def bubble_sort(arr): n = len(arr) for i in range(n): # n번 반복 for j in range(n - i - 1): # 마지막 원소까지 가지 않아도 됨 if arr[j] > arr[j + 1]: arr[j], arr[j + 1] = arr[j + 1], arr[j] bubble_sort(arr) print(arr) 2차 반복문이 나오고 array의 길이 만큼 반복하므로 O(N2) 선택 정렬 매번 가장 작은 숫자를 n번째 앞자리에 바꾼다. arr = list(map(int, input().split())) def selection_sort(a..
HTTPS (2021.3.9) HTTPS를 사용하는 이유 Hyper-Text Transfer Protocol Secure 기존의 HTTP 사이트보다 안전하다. 웹 사이트에 보내는 정보를 누군가 보지 못한다. 암호화된 텍스트로 전송 신뢰할 수 있는 사이트의 지표 피싱 사이트 판별 기관으로부터 검증된 사이트만 주소에 사용 가능 HTTP Hyper-Text Transfer Protocol 서버와 클라이언트(브라우저)가 주고받는 메시지의 형식 인터넷 상에 커뮤니케이션에 사용되는 형식 우편 주소창에 일일이 명시 기술적 접근 내가 사이트에 보내는 정보들을 제 3자가 못 보게 한다. 접속한 사이트가 믿을만한 곳인지를 알려준다. 두 보안 기능이 어떤 원리로 구현되는지 알아보자 대칭키와 비대칭키 대칭키: 메시지를 보내는 쪽과 메시지를 받는 쪽이 메시..
[항해99 1기] [Chapter2-1] 자료구조, 알고리즘 (5) (2021.3.9) Baekjoon Online Judge 백준 온라인 저지 사이트의 문제 풀이 11729 문제 링크 n = int(input()) # 옮긴 횟수 count = 0 # 하노이의 탑 원반 옮기기 함수 def moveDisk(d, s, m, e): # d: 원반 갯수, s: 출발 장대, m: 중간 장대, e: 마지막 장대 # 원반을 다 옮기면 재귀함수 호출 종료 if d == 0: return # 원반을 중간 장대에 이동 moveDisk(d - 1, s, e, m) # 가장 큰 원반을 마지막 장대로 이동 print(s, e) # 중간 장대의 원반을 마지막 장대로 옮기기 moveDisk(d - 1, m, s, e) for i in range(n): count = count * 2 + 1 print(count) m..
[항해99 1기] [Chapter2-1] 자료구조, 알고리즘 (4) (2021.3.8) Baekjoon Online Judge 백준 온라인 저지 사이트의 문제 풀이 2869 문제 링크 import math # a : 올라가는 미터, b : 미끄러지는 미터, v : 나무 막대 a, b, v = map(int, input().split()) # 걸린 일수 d = math.ceil(((v - b) / (a - b))) print(d) 10250 문제 링크 t = int(input()) # test 케이스 만큼 입력 받기 for i in range(t): h, w, n = map(int, input().split()) # 호수의 층 번호 f = n % h # 호수의 방 번호 r = (n // h) + 1 # 딱 나누어 떨어지는 경우 if f == 0: f = h r -= 1 print((f * 1..