코딩 테스트
-
프로그래머스 / 둘만의 암호코딩 테스트/Level 1 2023. 2. 2. 22:11
https://school.programmers.co.kr/learn/courses/30/lessons/155652 파이썬 def solution(s, skip, index): text = [each for each in 'abcdefghijklmnopqrstuvwxyz' * 3 if each not in skip] return ''.join(text[text.index(each) + index] for each in s) 테스트 1 〉통과 (0.02ms, 10.1MB) 테스트 2 〉통과 (0.02ms, 10.2MB) 테스트 3 〉통과 (0.02ms, 10.3MB) 테스트 4 〉통과 (0.01ms, 10.4MB) 테스트 5 〉통과 (0.02ms, 10.2MB) 테스트 6 〉통과 (0.02ms, 10.2M..
-
숫자 변환하기코딩 테스트/Level 2 2023. 1. 28. 21:01
https://school.programmers.co.kr/learn/courses/30/lessons/154538 def solution(x, y, n): que = [(x, 0)] while que: x_, answer = que.pop(0) if x_ > y: continue if x_ == y: return answer que.append((x_ * 2, answer + 1)) que.append((x_ * 3, answer + 1)) que.append((x_ + n, answer + 1)) return -1 너비우선탐색(BFS) 으로... 넓이 아님~ 테스트 1 〉통과 (0.01ms, 10.3MB) 테스트 2 〉통과 (0.00ms, 10MB) 테스트 3 〉통과 (0.00ms, 10MB) 테스트..
-
뒤에 있는 큰 수 찾기코딩 테스트/Level 2 2023. 1. 28. 20:59
https://school.programmers.co.kr/learn/courses/30/lessons/154539 def solution(numbers): answer = [] for i in range(len(numbers)): for j in range(i + 1, len(numbers)): if numbers[j] > numbers[i]: answer.append(numbers[j]) break else: answer.append(-1) return answer 뭐 당연히 이런 코드로는 통과 불능... 예전 Level 2의 수준과 다르게 어려워 졌다. ㅜ,.ㅜ 편법이지만 뒤집어 생각하면 통과는 가능하다. def solution(numbers): answer = [-1 for _ in numbers..
-
무인도 여행코딩 테스트/Level 2 2023. 1. 28. 13:22
https://school.programmers.co.kr/learn/courses/30/lessons/154540 def solution(maps): def solve(start_y, start_x): que = [(start_y, start_x)] food = 0 while que: pos_y, pos_x = que.pop() if (pos_y, pos_x) not in visited: visited.add((pos_y, pos_x)) food += int(maps[pos_y][pos_x]) for diff_x, diff_y in ((1, 0), (-1, 0), (0, 1), (0, -1)): new_x, new_y = pos_x + diff_x, pos_y + diff_y if 0
-
지형 이동코딩 테스트/Level 4 2023. 1. 25. 11:38
https://school.programmers.co.kr/learn/courses/30/lessons/62050 queue를 이용. from heapq import heappop, heappush def solution(land, height): answer = 0 que = [(0, 0, 0)] visited = set() while que: p, y, x = heappop(que) if (y, x) in visited: continue visited.add((y, x)) answer += p for dy, dx in ((0, 1), (0, -1), (1, 0), (-1, 0)): next_y, next_x = y + dy, x + dx if not (len(land) > next_y >= 0 and..
-
인사고과코딩 테스트/Level 3 2023. 1. 20. 15:15
https://school.programmers.co.kr/learn/courses/30/lessons/152995 def solution(scores): wh_sum = sum(scores[0]) max_s1 = answer = 0 for s in sorted(scores, key=lambda x: (-x[0], x[1])): if max_s1 wh_sum: answer += 1 elif s == scores[0]: return -1 return answer + 1 테스트 1 〉통과 (0.00ms, 10.2MB) 테스트 2 〉통과 (0.01ms, 10.2MB) 테스트 3 〉통과 (0.01ms, 10.2MB) 테스트 4 〉통과 (0.01ms, 10.1MB) 테스트 5 〉통과 (0.01ms, 10.1MB)..
-
시소 짝꿍코딩 테스트/Level 2 2023. 1. 19. 21:50
https://school.programmers.co.kr/learn/courses/30/lessons/152996 생각의 흐름을 따라... from itertools import product, combinations def solution(weights): answer = 0 for w1, w2 in combinations(weights, 2): for seat1, seat2 in product((2, 3, 4), repeat=2): if w1 * seat1 == w2 * seat2: answer += 1 break return answer 시간초과~! 레벨 2도 어렵다. 테스트 1 〉통과 (0.01ms, 10.2MB) 테스트 2 〉통과 (0.02ms, 10.2MB) 테스트 3 〉통과 (0.04ms,..
-
합성수 찾기코딩 테스트/Level 0 2023. 1. 9. 06:51
https://school.programmers.co.kr/learn/courses/30/lessons/120846 파이썬 에라토스테네스의 체 def solution(n): primes = [True for _ in range(n + 1)] primes[0] = primes[1] = False for num in range(2, n): if primes[num]: for each in range(num * 2, n + 1, num): primes[each] = False return n - sum(primes) - 1 '에라토스테네스의 체'를 쓰지 않고... def solution(n): answer = 0 for i in range(1, n + 1): counter = 0 for j in range(1..