목록분류 전체보기 (148)
공부 기록장
작년에 코테 응시하면서 풀어 봤던 문제잘 기억은 안나는데, 어찌 저찌 풀이를 해서 테스트 케이스 몇 개는 통과했던 기억...근데 전체 통과는 못했던 걸로 기억한다 https://tech.kakao.com/posts/610 2024 카카오 겨울 인턴십 코딩테스트 문제해설 - tech.kakao.com안녕하세요, 카카오에서 계정시스템 개발을 맡고 있는 잭입니다. 2024 카카오 채...tech.kakao.com 공식 문제 해설을 보면, 생성된 노드와 각 그래프가 갖는 특성을 기반으로생성된 노드 번호와 각 그래프의 개수를 구한다 이러한 특성을 활용하기 위해서는 입력으로 주어지는 간선 정보를 정점별로 저장해야 한다.정점이 몇 개 인지 모르기 때문에 딕셔너리 자료 구조를 사용한다. def solution(edge..
https://www.acmicpc.net/problem/1238 코드# 다익스트라 두 번 쓰는 풀이import heapqINF = int(1e9)def dijkstra(start): distance = [INF] * (N+1) distance[start] = 0 q = [] heapq.heappush(q, (0, start)) while q: dist, now = heapq.heappop(q) if distance[now] 접근 방법- 플로이드 워셜로 풀면 되겠다고 생각했지만 시간 초과- N이 최대값인 경우 10억번의 연산이 필요하게 되고, 시간 초과 발생- 다익스트라를 2번 사용하는 풀이 참고 배운 점- 플로이드 워셜을 복습할 수 있었다- 다익스트..
https://www.acmicpc.net/problem/1916 코드import sysimport heapqinput = sys.stdin.readlineINF = int(1e9)n = int(input())m = int(input())graph = [[] for _ in range(n+1)]distance = [INF] * (n+1)for _ in range(m): a, b, c = map(int, input().split()) graph[a].append((b, c))start, end = map(int, input().split())def dijkstra(start): q = [] heapq.heappush(q, (0, start)) distance[start] = 0 ..
https://www.acmicpc.net/problem/11279 코드import sys, heapqinput = sys.stdin.readlinemax_heap = []n = int(input())for i in range(n): num = int(input()) * -1 if num == 0: print(heapq.heappop(max_heap) * -1 if max_heap else 0) else: heapq.heappush(max_heap, num) 접근 방식1. 주어진 수가 0이 아닌 경우, 그 수를 -1을 곱해서 음수로 만들어 최대 힙으로 활용할 최소 힙에 넣는다2. 주어진 수가 0인 경우, 최대 힙에서 가장 큰 값을 꺼내서 출력하고, 힙이 비어 있으..