코딩 테스트/백준(50)
-
백준 알고리즘 19941. 햄버거 분배
https://www.acmicpc.net/problem/19941 19941번: 햄버거 분배 기다란 벤치 모양의 식탁에 사람들과 햄버거가 아래와 같이 단위 간격으로 놓여 있다. 사람들은 자신의 위치에서 거리가 $K$ 이하인 햄버거를 먹을 수 있다. 햄버거 사람 햄버거 사람 햄버거 사 www.acmicpc.net 전체 코드 김시은님 코드 N, K = map(int, input().split()) location = list(input()) count = 0 for i in range(N): if location[i] == 'P': # 현재 위치가 사람이라면 for j in range(max(i-K, 0), min(i+K+1, N)): # 범위 제한 # 해당 범위 내에서 햄버거를 찾았을 경우 if loca..
2024.03.25 -
백준 알고리즘 1916. 최소비용 구하기
https://www.acmicpc.net/problem/1916 1916번: 최소비용 구하기 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 www.acmicpc.net 전체 코드 전희경님 코드 import sys n = int(sys.stdin.readline()) # 도시의 개수 n m = int(sys.stdin.readline()) # 버스의 개수 m graph = {} for i in range(1, n + 1): graph[i] = {} for _ in range(m): start, end, cost = map(int,..
2024.03.25 -
백준 알고리즘. 11724 연결 요소의 개수
https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주어 www.acmicpc.net 전체 코드 전희경님 코드 - DFS import sys sys.setrecursionlimit(10**7) # sys.stdin = open("sample_input.txt", "r") # 정점 개수 n, 간선 개수 m n, m = map(int, sys.stdin.readline().split()) graph = [[] for _ ..
2024.03.22 -
백준 알고리즘 2644. 촌수계산
https://www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어 www.acmicpc.net 전체 코드 전희경님 코드 import sys # sys.setrecursionlimit(10**7) # sys.stdin = open("sample_input.txt", "r") # 전체 사람의 수 n n = int(sys.stdin.readline()) # 촌수 계산을 하는 두 사람 p1, p2 = map(int, sys.stdin.readline().split()) # 부모..
2024.03.22 -
백준 알고리즘 2294. 동전 2
https://www.acmicpc.net/problem/2294 2294번: 동전 2 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동전이 여러 번 주어 www.acmicpc.net 전체 코드 import sys n, k = map(int, input().split()) coins = set() for _ in range(n): coins.add(int(sys.stdin.readline().strip('\n'))) # 가치의 최대합은 10000이다. 0~10000까지의 값을 col로 사용하기 위해 10001로 초기화한다. max_size = 1..
2024.03.22 -
백준 알고리즘 5557. 1학년
https://www.acmicpc.net/problem/5557 5557번: 1학년 상근이가 1학년 때, 덧셈, 뺄셈을 매우 좋아했다. 상근이는 숫자가 줄 지어있는 것을 보기만 하면, 마지막 두 숫자 사이에 '='을 넣고, 나머지 숫자 사이에는 '+' 또는 '-'를 넣어 등식을 만들며 놀 www.acmicpc.net 전체 코드 n = int(input()) dp = [[0 for _ in range(21)] for _ in range(n)] # dp[i][j] -> i번째 숫자까지 고려했을 때, 합이 j가 되는 경우의 수 arr = list(map(int, input().split())) # 첫번째 수 저장 dp[0][arr[0]] = 1 # 마지막 숫자를 제외하고 순회 for i in range(1,..
2024.03.21