본문 바로가기

반응형

백준

[백준] 10845번 - 큐 1. 문제 2. 코드 from collections import deque import sys n = int(input()) queue = deque() for i in range(n): temp = sys.stdin.readline() #push if temp[0] == 'p' and temp[1] == 'u': temp, temp_num = temp.split() queue.append(temp_num) #pop elif temp[0] == 'p': if len(queue) == 0: print(-1) continue temp_num = queue.popleft() print(temp_num) #size elif temp[0] == 's': print(len(queue)) #empty elif tem.. 더보기
[백준] 5639번 - 이진 검색 트리 1. 문제 2. 코드 import sys sys.setrecursionlimit(10 ** 6) temp = sys.stdin.readline tree = [] def post_order(start, end): if start > end: return root = tree[start] idx = start + 1 while idx l -> r 중위 : l -> root -> r 후위 : l -> r -> root 전위 순회 결과를 가지고 후위 순회 결과를 출력하는 문제. (곧 설명 보강 예정,,,) 더보기
[백준] 2606번 - 바이러스 1. 문제 2. 코드 n = int(input()) m = int(input()) l = [0 for i in range(n+1)] matrix = [[0]*(n+1) for i in range(n+1)] for i in range(m): a, b = map(int, input().split()) matrix[a][b] = 1 matrix[b][a] = 1 def dfs(v): l[v] = 1 for i in range(n+1): if (l[i] == 0 and matrix[v][i] == 1): dfs(i) dfs(1) #print(cnt) print(sum(l)-1) 3. 풀이 dfs를 사용해서 풀면 쉬운 문제이다. dfs를 어떻게 작성하는지 잘 모른다면 아래 포스팅을 참고. https://talta.. 더보기
[백준] 1260번 - DFS와 BFS 1. 문제 2. 코드 n, m, v = map(int, input().split()) l_v = [0 for i in range(n+1)] l = [[0] * (n+1) for i in range(n+1)] for i in range(m): a, b = map(int, input().split()) l[a][b] = l[b][a] = 1 #print(l) #dfs def dfs(v): print(v, end = ' ') l_v[v] = 1 for i in range(1, n+1): if(l_v[i] == 0 and l[v][i] == 1): dfs(i) #bfs def bfs(v): queue = [v] l_v[v] = 0 while queue: v = queue.pop(0) print(v, end = .. 더보기
[백준] 1755번 - 숫자놀이 1. 문제 2. 코드 word = ['zero','one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'] m, n = map(int, input().split()) l = [] for i in range(m, n+1): if i 5): print(l[i-1][1]) else: print(l[i-1][1], end = ' ') 3. 주요 포인트 숫자와 숫자를.. 더보기
[백준] 1431번 - 시리얼 번호 (파이썬) 1. 문제 2. 코드 n = int(input()) l = [] for i in range(n): s = input() cnt = 0 for j in range(len(s)): if 48 더보기
[백준] 10867 - 중복 빼고 정렬하기 (파이썬) 1. 문제 2. 코드 n = int(input()) l = set(map(int, input().split())) l = list(l) l.sort() for i in l: print(i, end = ' ') 3. 주요 알고리즘 set은 unique한 값을 가지고 있고, list는 sort가 가능하다는 것을 이용한다. 더보기
[백준] 2822번 - 점수 계산 1. 문제 2. 코드 l = [] for i in range(8): n = int(input()) l.append([n, i]) l.sort(key=lambda num: num[0]) max_sum = 0 idx = [] for i in range(3, 8): max_sum += l[i][0] idx.append(l[i][1]) idx.sort() print(max_sum) for i in range(5): print(idx[i]+1, end = ' ') 3. 풀이 lambda사용에 익숙해지면 금방 풀 수 있는 문제! 더보기

반응형