목록전체 글 (134)
공부 기록장
https://www.acmicpc.net/problem/17298 코드from collections import dequeimport sysinput = sys.stdin.readlinen =int(input())num = list(map(int, input().split()))ans = [-1] * nstack = deque()for i in range(n): while stack and num[stack[-1]] 접근 방법- 문제 자체는 단순하고 쉬워보이지만, 수열의 크기가 최대 백만일 수 있기 때문에 시간 복잡도를 고려해야 한다- 현재 값을 기준으로 더 큰 값을 '효율적으로' 찾을 방법이 필요하다- 순차적으로 배열을 처리하면서, 특정 조건을 만족하는 경우 값을 처리하는 자료구조로 "스택"을..
https://www.acmicpc.net/problem/11779 코드import heapqimport sysINF = int(1e9)input = sys.stdin.readlinen = int(input())m = int(input())graph = [[] for _ in range(n+1)]for _ in range(m): s, e, c = map(int, input().split()) graph[s].append([e, c])a, b = map(int, input().split())dist = [INF] * (n+1)prev_node = [0] * (n+1) # 최단 경로 출력을 위한 변수def dijkstra(a): q = [] heapq.heappush(q, (0, ..
작년에 코테 응시하면서 풀어 봤던 문제잘 기억은 안나는데, 어찌 저찌 풀이를 해서 테스트 케이스 몇 개는 통과했던 기억...근데 전체 통과는 못했던 걸로 기억한다 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번 사용하는 풀이 참고 배운 점- 플로이드 워셜을 복습할 수 있었다- 다익스트..