본문 바로가기

CodingTest

(238)
[ SW Expert Academy ] 5248. 그룹 나누기 # 다시 풀기 # 서로소 집합 만드는 알고리즘이... 헷갈린다. 간만에 푸니까 ㅠ 정말 기본 알고리즘을 많이 까먹었구나... 하.. 1 차 제출 [ 3 / 10 ] Fail 일단 기억나는대로 작성한 코드............ def find_set(x): if x == p[x]: return x return find_set(p[x]) def union(x, y): if x > y: p[find_set(x)] = find_set(y) else: p[find_set(y)] = find_set(x) if __name__ == "__main__": T = int(input()) p = {} for test_case in range(1, T+1): answer = 0 n, m = map(int, input().split()) te..
[ SW Expert Academy ] 5247. 연산 보자마다 dfs라고 생각했다.. 그런데 maximum recursion depth exceeded 에러가 나서 읭? 왜 깊이 제한 에러가 나지..? 회귀하도록 조건 잘 걸어준 것 같은데...? def dfs(current, m, depth): global answer if current > 100000 or depth >= answer: return if current == m: answer = min(answer, depth) return dfs(current+1, m, depth+1) dfs(current-1, m, depth+1) dfs(current*2, m, depth+1) dfs(current-10, m, depth+1) if __name__ == "__main__": T = int(input..
[ SW Expert Academy ] 5209. 최소 생산 비용 알고리즘을 이해 하고 문제에 적용시키는 .. 그런 느낌이 든다. 2-3일 새에 또 코테 이해력이 늘어난 느낌이다. 백트래킹이 참 이해 안 가는 파트 중에 하나였는데.. 그동안 그냥 머리에 밀어넣기 암기 식으로 문제 풀어온 성과인지, 해당 사이트의 30분도 안 되는 강의 덕분인 지, 조금은 논리적으로 한 큐에 해당 문제를 풀 수 있었다. 이게 좀 간단한 문제여서 뿌듯함까지는 아니고 신기함이 강렬하게 느껴진다. 이런 사소하고 소중한 작은 성취 덕분에 일주일 간 코테에 집중할 스케줄이 더욱 기대가 된다. 1차 제출 [ 10 / 10 ] Pass def dfs(plants, n, selected, depth, curr_sum): global answer if depth == n: answer = min(answ..
[ SW Expert Academy ] 5208 전기버스2 음 .. 언제쯤 재귀를 자유자재로 사용할까.. 꽤 속상하네? 제출도 못 하고 돌아가지 않는 내 문제 풀이.. def get_min_exchange(n, bus_stops, now, cnt): global min_cnt if min_cnt = n: # 카운트 최솟값인지 체크해서 갱신 min_cnt = min(min_cnt, cnt) return for i in range(now+1, now + bus_stops[now]): get_min_exchange(n, bus_stops, i, cnt + 1) import sys sys.stdin = open("sample.txt", "r") if __name__ == '__main__': T = int(input()) for test_case in range(1, ..
[ SW Expert Academy ] 5207. 이진탐색 1차 시도. [ 4 / 10 ] Fail 뭐지... 뭔데... ?? !!?? 왜 틀리는데... def binary_search(arr, target, start, end): mid = (start+end)//2 if end < start: return 0 if arr[mid] == target: return arr[mid] elif target
[ SW Expert Academy ] 5205. 퀵정렬 1차 시도. [ 10 / 10 ] PASS 너무 유명한 퀵정렬 알고리즘을 이해하고 외우기만 하면 되는 문제였다. 잊지 말기 ~ 😋😉 def partition(a, l, r): pivot = a[l] i = l + 1 j = r while i
[ SW Expert Academy ] 5204. 병합정렬 1차 시도. 시간초과 [ 0 / 10 ] Fail def merge(left, right): result = [] while len(left) > 0 and len(right) > 0: if left[0] 0: result.extend(left) if len(right) > 0: result.extend(right) return result def merge_sort(a): global answer if len(a) right[-1]: answer += 1 return merge(left, right) if __name__ == '__main__': T = int(input()) for test_case in range(T): n = int(input()) a = list(map(int, input()...
[ SW Expert Academy ] 5203. 베이비진 게임 아.. 이 문제 가지고 의외로 헤맸다.. 정말 어이 없게도 인덱스와 값을 헷갈려서 ..... ................ .......... ..... .. . 왜 이런 단순한 문제도 이해 못 하나.. 하고 울적해질 뻔 했는데 실수 문제였다니 그나마 다행인 것 같기도 하고.. 1차 시도. [10 / 10] Pass 인덱스로 인한 런타임에러여서 아예 초장부터 망한거라 제출 자체는 1차시도만에 패스. def isRun(player, k): if k < 8 and player[k] and player[k+1] and player[k+2]: return True if 0 < k and k < 9 and player[k-1] and player[k] and player[k+1]: return True if 1 ..
[ SW Expert Academy ] 5189. 전기카트 .. 나 잘 하게 된건가..? 왜 잘 풀리지...😅 오늘 개념 먼저 학습하고 해당 내용 문제 풀이하는 식으로 학습하니까 확실히 문제 파악하는 힘이 좋은 것 같다. 가끔 이럴 때 진짜 보람 있다.. 이 맛에 아직도 버틸 수 있는 듯 🤤 1차 시도. [10 / 10] Pass from itertools import permutations T = int(input()) for test_case in range(1, T + 1): n = int(input()) costs = [list(map(int, input().split())) for _ in range(n)] cand = list(permutations(range(2, n+1),n-1)) min_cost = 1e9 for route in cand: sta..
[ SW Expert Academy ] 5188. 최소합 헐.. 드디어 재귀를 잘 다룰 수 있게 된건가..? 재귀 구현 한 큐에 성공한 게 처음이라서 얼떨떨하다.. 1차 시도. [ 10 /10 ]. Pas def search(x, y, n, board, visited, total): total += board[x][y] global total_min if x == n - 1 and y == n - 1: total_min = min(total_min, total) return # 오른쪽 if x + 1 < n: search(x+1, y, n, board, visited, total) # 아래쪽 if y + 1 < n: search(x, y+1, n, board, visited, total) T = int(input()) for test_case in range(..