본문 바로가기

분류 전체보기

(31)
[SWEA] 5658. 보물상자 비밀번호 (Python) T = int(input()) for test_case in range(1, T + 1): n, k = map(int, input().split()) number = list(input()) num_list = set() #중복제거 l = n//4 for i in range(n): for j in range(4) : num_list.add(int(''.join(number[j*l : (j+1)*l]),16)) number.append(number.pop(0)) final = sorted(list(num_list),reverse=True)[k-1] print('#{} {}'.format(test_case, final))
[SWEA] 종이 붙이기 (Python) T = int(input()) for test_case in range(1, T + 1): n = int(input()) dp = [1, 3] for i in range(2, n//10): dp.append(dp[i-1]+dp[i-2]*2) print('#{} {}'.format(test_case, dp[-1])) 전형적인 DP 문제이다.
[SWEA] 괄호 검사 (Python) T = int(input()) for test_case in range(1, T + 1): sen = list(input()) ans = 1 check = [] for i in sen : if i == '{' or i=='(' : check.append(i) elif i == ')' or i == '}': if check : a = check.pop() if i==')' and a !='(': ans = 0 break elif i=='}' and a != '{': ans = 0 break else : ans = 0 break if check : ans = 0 print('#{} {}'.format(test_case, ans))
[SWEA] 그래프 경로 (Python) T = int(input()) for test_case in range(1, T + 1): v, e = map(int, input().split()) g = [[] for _ in range(v+1)] visited = [] for i in range(e): a, b = map(int, input().split()) g[a].append(b) start, end = map(int, input().split()) tovisit=[start] while tovisit: a=tovisit.pop() visited.append(a) for i in g[a]: if i not in visited: tovisit.append(i) if end in visited: print('#{} {}'.format(test_c..
[SWEA] 반복문자 지우기 (Python) T = int(input()) for test_case in range(1, T + 1): sen = list(input()) stack = [] for i in sen : if not stack : stack.append(i) continue if stack[-1] == i: stack.pop() else : stack.append(i) print('#{} {}'.format(test_case, len(stack)))
[백준] 2606. 바이러스 (Python) www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net -풀이 com_n = int(input()) con_n = int(input()) g = [[] for i in range(com_n+1)] visited =[] for i in range(con_n): a, b = map(int, input().split()) g[a].append(b) g[b].append(a) tovisit = [1] while tovisit: a = tovisit.pop() visited.ap..
[백준] 2667. 단지번호붙이기 (DFS/Python) -풀이 n = int(input()) map_n = [] dx = [-1, 1, 0, 0] dy = [0, 0, 1, -1] for i in range(n): map_n.append(list(input())) dan = 0 con_list = [] for i in range(n): for j in range(n): if map_n[i][j] == '1' : dan += 1 stack = [(i, j)] map_n[i][j] = 0 count = 1 while stack : a, b = stack.pop() for k in range(4): to_x = a + dx[k] to_y = b + dy[k] if to_x >= 0 and to_y >= 0 and to_x < n and to_y < n : if m..
[SWEA] 5097. 회전 (Python) -풀이 T = int(input()) for test_case in range(1, T + 1): n, m = map(int, input().split()) queue = list(map(int, input().split())) for i in range(m): queue.append(queue.pop(0)) print('#{} {}'.format(test_case, queue[0])) deque 모듈을 import해서도 구현이 가능하다.