본문 바로가기

ALGORITHM78

[ALGORITHM] 8. 다이나믹 프로그래밍 이것이 취업을 위한 코딩테스트다 with python 문제 풀이 8-5. 실전문제 '1로 만들기' # C8. 다이나믹 프로그래밍 - 실전문제 '1로 만들기' import sys put = sys.stdin.readline # 그리디로 elif문 써서 큰 수 순서대로 하면 안 되는 이유 # 맨 처음에 5로 나누는 것보다 1 빼고 시작하는 게 더 작은 케이스가 있을 수 있다! # 그래서 부분문제로 나누고, 기존 연산값 재활용하는 dp로 해야 함 x = int(put()) d = [0]*30001 # DP 테이블 초기화 # x = 1일 때는 이미 1로 만들어졌으니까 연산 필요 없음 -> 2부터 시작 for i in range(2, x+1): # 뒤에 붙은 +1은 계산한 횟수 더하는 것! # -1, /2, /3.. 2022. 3. 6.
[ALGORITHM] 7. 이진 탐색 이것이 취업을 위한 코딩테스트다 python 문제 풀이 7-5. 실전문제 '부품 찾기' # C7. 이진 탐색 - 실전문제 '부품 찾기' import sys put = sys.stdin.readline n = int(put()) store = list(map(int, put().split())) m = int(put()) customer = list(map(int, put().split())) for i in customer: if i in store: print("yes", end=' ') else: print("no", end=' ') 이진 탐색으로 풀기 # C7. 이진 탐색 - 실전문제 '부품 찾기' - 이진 탐색으로 풀기 import sys put = sys.stdin.readline n = int.. 2022. 3. 5.
[ALGORITHM] 6. 정렬 이것이 취업을 위한 코딩테스트다 python 문제 풀이 6-10. 실전문제 ‘위에서 아래로’ # C6. 정렬 - 실전문제 '위에서 아래로' n = int(input()) nums = [] for i in range(n): nums.append(int(input())) nums = sorted(nums, reverse=True) for i in nums: print(i, end=' ') 6-11. 실전문제 ‘성적이 낮은 순서대로 학생 출력하기’ # C6. 정렬 - 실전문제 '성적이 낮은 순서대로 학생 출력하기' n = int(input()) array = [] for i in range(n): name, score = input().split() #원래 map으로 하려고 했는데 둘 다 int형인 게 아니라.. 2022. 3. 4.
[ALGORITHM] 5. DFS/BFS 이것이 취업을 위한 코딩테스트다 python 문제 풀이 5-10. 음료수 얼려 먹기 #C5. DFS/BFS - 실전문제 '음료수 얼려 먹기' import sys put = sys.stdin.readline n, m = map(int, put().split()) shape = [] for i in range(n): shape.append(list(map(int, put()))) def dfs(x, y): #범위 넘어가면 끝냄 if x=n or y=m: return False if shape[x][y] == 0: #방문 처리 shape[x][y] = 1 #상좌우하 재귀적 호출 dfs(x-1, y) dfs(x, y-1) dfs(x+1, y) dfs(x, y+1) return True return False #.. 2022. 3. 1.
[ALGORITHM] 4. 구현 이것이 취업을 위한 코딩테스트다 python 문제 풀이 4-1. 상하좌우 내 풀이 # C4. 구현 - '상하좌우' import sys put = sys.stdin.readline n = int(put()) plan = list(put().split()) x=1 y=1 for i in plan: if i=='R': if x==n: continue else: x+=1 elif i=='L': if x==1: continue else: x-=1 elif i=='U': if y==1: continue else: y-=1 elif i=='D': if y==n: continue else: y+=1 print(y, x) 책 풀이 # N 입력받기 n = int(input()) x, y = 1, 1 plans = inpu.. 2022. 2. 28.
[ALGORITHM] 3. 그리디 이것이 취업을 위한 코딩테스트다 python 문제 풀이 3-1. 거스름돈 # C3. GREEDY - 거스름돈 import sys put = sys.stdin.readline n = int(put()) count = 0 list = [500, 100, 50, 10] for coin in list: # n - i # count =+ 1 count += n // coin n %= coin print(count) 3-2. 큰 수의 법칙 내 풀이 # C3. GREEDY - 실전 문제 '큰 수의 법칙' import sys put = sys.stdin.readline n, m, k = map(int, put().split()) nums = list(map(int, put().split())) sum = 0 nums... 2022. 2. 27.