본문 바로가기

Coding Test

(27)
[백준/Python] 13335 트럭 문제 링크 13335번: 트럭 입력 데이터는 표준입력을 사용한다. 입력은 두 줄로 이루어진다. 입력의 첫 번째 줄에는 세 개의 정수 n (1 ≤ n ≤ 1,000) , w (1 ≤ w ≤ 100) and L (10 ≤ L ≤ 1,000)이 주어지는데, n은 다리를 건너는 트 www.acmicpc.net 문제 풀이 처음에는 리스트로 접근하였는데, 시간이 오래 걸릴 것 같아서 다른 방법을 생각해 보았다. w의 개수만큼 0이 들어 있는 큐(다리의 길이)를 생성하고, 왼쪽의 큐를 하나 제거하고(popleft) a[i] 만큼의 무게를 가진 트럭을 오른쪽에서 하나씩 집어 넣으면서(append) 큐의 길이를 일정하게 유지하여 한 칸씩 이동하는 모습을 구현해 보았다. 이때, 현재 큐(다리 위)에 있는 총량과 새로 넣을..
[백준/Python] 2512 예산 문제 링크 2512번: 예산 첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상 www.acmicpc.net 문제 풀이 예산 요청 금액이 예산보다 작거나 같으면(i mid) 예산 만큼의 예산을 받을 수 있는데, 이는 for문을 이용해서 작성할 수 있다. 이에 따른 총 예산의 합이 M보다 크면(total > m) 예산을 초과하게 되므로 배정할 수 있는 예산의 크기를 줄여야 한다. 반대로 M보다 작거나 같으면(total
[백준/Python] 7576 토마토 문제 링크 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 문제 풀이 일반적인 bfs 문제와는 조금 다르게 시작점(익은 토마토)의 위치가 1개 이상이라는 점이다. 처음으로 얻은 익은 토마토의 위치를 큐에 넣은 후 너비 우선 탐색을 진행하면, 해당 시작점에 대해 너미 우선 탐색을 모두 진행한다. 이후에 큐에 새로운 익은 토마토의 위치가 추가되고 다시 너비 우선 탐색을 수행해야 할 경우, 기존에 방문한 위치를 다시 방문하는 문제가 발생하므로 다른 방법으로 접근해야 한다. 따라서 익은 토마토의 위치..