
링크 : https://school.programmers.co.kr/learn/courses/30/lessons/150365 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이번에 네이버 코딩테스트를 응시하고 깨달은 점은 구현문제가 생각보다 자주 출제되고 어렵게 나온다는 것이다. 카카오에서만 이런 종류의 구현 문제들을 출제하는 줄 알았는데 네이버도 수능과 같은 방식으로 문제를 이해하기 어렵고 이해해도 구현하기 까다롭게 출제하고 있다. 그래서 앞으로는 이런 구현문제들을 많이 풀어보고 사고하는 능력을 길러볼 생각이다. 코드 def solution(n, m, x..

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/49191 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 from collections import defaultdict def solution(n, results): answer = 0 lose_dict = defaultdict(set) win_dict = defaultdict(set) for a,b in results: win_dict[a].add(b) lose_dict[b].add(a) for i in range(1,n+1): for..

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/72413 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(n, s, a, b, fares): MAX = float("inf") dp = [[MAX] * (n+1) for _ in range(n+1)] for A,B,w in fares: dp[A][B] = w dp[B][A] = w for i in range(1,n+1): dp[i][i] = 0 for k in range(1,n+1): for i in range(1,..

링크 : https://www.acmicpc.net/problem/1516 1516번: 게임 개발 첫째 줄에 건물의 종류 수 N(1 ≤ N ≤ 500)이 주어진다. 다음 N개의 줄에는 각 건물을 짓는데 걸리는 시간과 그 건물을 짓기 위해 먼저 지어져야 하는 건물들의 번호가 주어진다. 건물의 번호는 1부 www.acmicpc.net 코드 from collections import defaultdict,deque n = int(input()) time = [0] * (n+1) count = [0] * (n+1) preq = defaultdict(list) q = deque() for i in range(1,n+1): arr = list(map(int,input().split())) time[i] = arr[..

링크 https://www.acmicpc.net/problem/14728 https://www.acmicpc.net/problem/9084 9084번: 동전 우리나라 화폐단위, 특히 동전에는 1원, 5원, 10원, 50원, 100원, 500원이 있다. 이 동전들로는 정수의 금액을 만들 수 있으며 그 방법도 여러 가지가 있을 수 있다. 예를 들어, 30원을 만들기 위해서는 www.acmicpc.net 14728번: 벼락치기 ChAOS(Chung-ang Algorithm Organization and Study) 회장이 되어 일이 많아진 준석이는 시험기간에도 일 때문에 공부를 하지 못하다가 시험 전 날이 되어버리고 말았다. 다행히도 친절하신 교수님께서 아래와 www.acmicpc.net Knapsack 알고..

링크 : https://www.acmicpc.net/problem/1365 1365번: 꼬인 전깃줄 첫 줄에 전봇대의 개수 N(1 ≤ N ≤ 100,000)이 주어지고, 이어서 N보다 작거나 같은 자연수가 N개 주어진다. i번째 줄에 입력되는 자연수는 길 왼쪽에 i번째 전봇대와 연결된 길 오른편의 전봇대가 www.acmicpc.net 코드 import bisect n = int(input()) arr = list(map(int,input().split())) stack = [] for x in arr: if not stack or x > stack[-1]: stack.append(x) continue loc = bisect.bisect_left(stack,x) stack[loc] = x print(n-l..

링크 : https://www.acmicpc.net/problem/2233 2233번: 사과나무 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 2,000)이 주어진다. 둘째 줄에는 벌레가 만드는 2×N자리의 이진수가 주어진다. 셋째 줄에는 썩은 사과의 위치를 나타내는 두 정수 X, Y가 주어진다. 이는 2×N자리 www.acmicpc.net 코드 n = int(input()) tree = list(map(int,str(input()))) x,y = map(int,input().split()) a,b = 0,0 inOut = [[0,0] for _ in range(n+1)] parent = [0] * (n+1) depth = [0] * (n+1) prev, last = 0, 0 for i in range(1,2..

링크 : https://www.acmicpc.net/problem/1719 1719번: 택배 명우기업은 2008년부터 택배 사업을 새로이 시작하기로 하였다. 우선 택배 화물을 모아서 처리하는 집하장을 몇 개 마련했지만, 택배 화물이 각 집하장들 사이를 오갈 때 어떤 경로를 거쳐야 하 www.acmicpc.net 코드 n,m = map(int,input().split()) graph = [[1e9]*(n+1) for _ in range(n+1)] dp = [[str(x)]*(n+1) for x in range(n+1)] for _ in range(m): a,b,c = map(int,input().split()) graph[a][b] = c graph[b][a] = c dp[a][b] = b dp[b][a]..

링크 : https://www.acmicpc.net/problem/1647 1647번: 도시 분할 계획 첫째 줄에 집의 개수 N, 길의 개수 M이 주어진다. N은 2이상 100,000이하인 정수이고, M은 1이상 1,000,000이하인 정수이다. 그 다음 줄부터 M줄에 걸쳐 길의 정보가 A B C 세 개의 정수로 주어지는데 A번 www.acmicpc.net 코드 import sys input = sys.stdin.readline def ancestor(node): if parent[node] != node: parent[node] = ancestor(parent[node]) return parent[node] n,m = map(int,input().split()) graph = [list(map(int,..