Programmers / 2단계 / 숫자 변환하기 / python
·
코딩테스트/programmers (python)
코딩테스트 연습 - 숫자 변환하기 | 프로그래머스 스쿨 (programmers.co.kr) 나의 풀이 (실패) 문제는 쉬워보였지만 막상 적절한 접근 방법이 떠오르지 않았다. def solution(x, y, n): num=[] count=0 x1=x; x2=x; x3=x while x3
Programmers / 2단계 / 롤케이크 자르기 / python
·
코딩테스트/programmers (python)
https://school.programmers.co.kr/learn/courses/30/lessons/132265 나의 풀이 ( 시간 초과 ) 슬라이싱을 이용해 비교하니 시간 초과되었다. def solution(topping): count=0 for i in range(1, len(topping)): if len(set(topping[:i])) == len(set(topping[i:])): count+=1 return count 모범 답안 from collections import Counter def solution(topping): answer = 0 old = Counter(topping) young = set() for i in topping: old[i] -= 1 young.add(i) if ..
Programmers / 3단계 / 이중우선순위큐 / python / heapq
·
코딩테스트/programmers (python)
코딩테스트 연습 - 이중우선순위큐 | 프로그래머스 스쿨 (programmers.co.kr) 모범 답안 import heapq def solution(operations): q = [] for i in operations: oper, num = i.split() num = int(num) if oper == 'I': heapq.heappush(q, num) elif oper == 'D' and num == 1: if len(q) != 0: q.remove(max(q)) else: if len(q)!=0: heapq.heappop(q) if len(q) == 0: answer = [0,0] else: answer = [max(q), heapq.heappop(q)] return answer 학습한 것 heap..
다익스트라(dijkstra) 알고리즘 파이썬 구현 코드
·
코딩테스트/programmers (python)
다익스트라 알고리즘 구현 코드 import heapq def dijkstra(graph, start): distances = { node : float('inf') for node in graph} distances[start] = 0 queue = [] heapq.heappush(queue, [start, distances[start]]) while queue: now, now_dist = heapq.heappop(queue) if distances[now] < now_dist: continue for new, new_dist in graph[now]: distance = now_dist + new_dist if distance < distances[new]: distances[new] = distan..
Programmers / 3단계 / 단어 변환 / python / DFS/BFS
·
코딩테스트/programmers (python)
코딩테스트 연습 - 단어 변환 | 프로그래머스 스쿨 (programmers.co.kr) 모범 답안 최소 단계를 구하는 것이므로 BFS로 접근 from collections import deque def solution(begin, target, words): if target not in words : return 0 return bfs(begin, target, words) def bfs(begin, target, words): queue = deque() queue.append([begin, 0]) #시작 단어와 단계 0으로 초기화 while queue: now, step = queue.popleft() if now == target: return step for word in words: count..
Programmers / 3단계 / 정수 삼각형 / python / 동적계획법(Dynamic Programming)
·
코딩테스트/programmers (python)
코딩테스트 연습 - 정수 삼각형 | 프로그래머스 스쿨 (programmers.co.kr) 모범 답안 def solution(triangle): floor = len(triangle) - 1 # N층의 인덱스 while floor > 0: # N, N-1,...2, 1 for i in range(floor): # N번째 인덱스엔 0~N-> N+1개의 숫자가 있음 # 바로 위층의 칸에 아래칸의 두개중 큰값을 더해줌 triangle[floor-1][i] += max(triangle[floor][i], triangle[floor][i+1]) floor -= 1 # 층하나 올라가기 return triangle[0][0]
Programmers / 1단계 / 신고 결과 받기 / python / 2022 KAKAO BLIND RECRUITMENT
·
코딩테스트/programmers (python)
코딩테스트 연습 - 신고 결과 받기 | 프로그래머스 스쿨 (programmers.co.kr) 나의 풀이 def solution(id_list, report, k): id_dict={x: 0 for x in id_list} rep_id={x: 0 for x in id_list} arr=[] id = [] for i in set(report): id_dict[i.split()[1]] +=1 for i in id_dict.keys(): if id_dict[i] >= k: id.append(i) for i in set(report): if i.split()[1] in id: rep_id[i.split()[0]]+=1 return [_ for _ in rep_id.values()] 모범 답안 def solutio..
Programmers / 2단계 / 배달 / python / Summer/Winter Coding(~2018)
·
코딩테스트/programmers (python)
코딩테스트 연습 - 배달 | 프로그래머스 스쿨 (programmers.co.kr) 모범 답안 import heapq def dijkstra(dist,adj): queue = [] heapq.heappush(queue, [0,1]) while queue: cost, node = heapq.heappop(queue) for c,n in adj[node]: if cost+c < dist[n]: dist[n] = cost+c heapq.heappush(queue, [cost+c,n]) def solution(N, road, K): dist = [float('inf')]*(N+1) dist[1] = 0 adj = [[] for _ in range(N+1)] for r in road: adj[r[0]].append..