Computer Science/알고리즘(백준+프로그래머스)

    백준 16118) 달빛 여우_Python

    문제 분석 https://www.acmicpc.net/problem/16118 16118번: 달빛 여우 첫 줄에 나무 그루터기의 개수와 오솔길의 개수를 의미하는 정수 N, M(2 ≤ N ≤ 4,000, 1 ≤ M ≤ 100,000)이 주어진다. 두 번째 줄부터 M개의 줄에 걸쳐 각 줄에 세 개의 정수 a, b, d(1 ≤ a, b ≤ N, a ≠ b www.acmicpc.net 다익스트라를 구현할 줄 안다면 여우의 이동 경로는 어렵지 않게 구할 수 있다. 그러나 늑대의 이동경로를 구하는 데서 약간 아이디어가 필요하다. 늑대는 각각의 그루터기에 늦게 도착하거나 빠르게 도착할 수 있다. 이 때 단순 다익스트라 처럼 구현한다면 이전 최단 경로에 비해서 이번에 비교하는 최단 경로가 더 짧다면 갱신을 해줄텐데, ..

    백준 17144) 미세먼지 안녕!_Python

    문제 분석 https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 모든 조건을 다 확인하면서 구현해내는게 중요한 Simulation 문제! 코드 # 삼성기출 import sys input = sys.stdin.readline R, C, T = map(int, input().split()) # R행 C열 board = [list(map(int, input().split())) for _ in range(R)] cleaner = [] for i in r..

    백준 14501) 퇴사_ Python

    문제 https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 코드 import sys input = sys.stdin.readline N = int(input()) T = [0]*(N+1) P = [0]*(N+1) for i in range(N): Ti, Pi = map(int, input().split()) T[i] = Ti P[i] = Pi DP = [0]*(N+1) for i in range(N-1, -1, -1): if(N-i < T[i]): DP[i] = DP[i+1] # 주어진 시간안에 상담할 수 없음, 이전 값과 동일 else: DP[i] = max(DP[i+1], P[i]+..