구현 3

[백준 - Python] 1938 - 통나무 옮기기

0. 문제 링크 https://www.acmicpc.net/problem/1938 1938번: 통나무 옮기기 첫째 줄에 주어진 평지의 한 변의 길이 N이 주어진다. (4 ≤ N ≤ 50) 주어진다. 이어서 그 지형의 정보가 0, 1, B, E로 이루어진 문자열로 주어진다. 한 줄에 입력되는 문자열의 길이는 N이며 입력 문 www.acmicpc.net 1. 풀이 방법 BFS + 구현으로 문제를 풀었는데, 방문 처리가 가장 중요한 문제이다. 방문 처리와 더불어서 어떤 조건일 때 방문을 허락할지도 잘 체크해야 한다. 방문 처리는 비트 2개를 사용해서 해결하였다. 0은 미방문, 1은 가로가 방문, 2는 세로가 방문, 3은 가로세로 모두 방문 어떤 조건일 때 방문을 허락할지는 구현 문제이므로 이건 생략하겠다. 2..

[백준 - Python] 12764 - 싸지방에 간 준하

0. 문제 링크 https://www.acmicpc.net/problem/12764 12764번: 싸지방에 간 준하 첫째 줄에 사람의 수를 나타내는 \(N\)이 주어진다. \((1 \le N \le 100,000)\) 둘째 줄부터 \(N\)개의 줄에 걸쳐서 각 사람의 컴퓨터 이용 시작 시각 \(P\)와 종료 시각 \(Q\)가 주어진다. \((0 \le P \lt Q \le 1,000 www.acmicpc.net 1. 풀이 방법 우선순위 큐를 3개나 사용해서 풀었음 첫 번째는 시작 시간 순서대로 정렬한 리스트 - A 두 번째는 끝나는 시간을 기준으로 정렬한 리스트 - B 세 번째는 자리의 번호를 정렬한 리스트임 - C A에서 시간을 뽑음 그리고 B에 넣고, C에서 가장 작은 자리의 번호를 추출함 그 다음에..

[백준 - Python] 16974 - 레벨 햄버거

0. 문제 링크 https://www.acmicpc.net/problem/16974 16974번: 레벨 햄버거 상근날드에서 오랜만에 새로운 햄버거를 출시했다. 바로 레벨-L 버거이다. 레벨-L 버거는 다음과 같이 만든다. 레벨-0 버거는 패티만으로 이루어져 있다. 레벨-L 버거는 햄버거번, 레벨-(L-1) 버거, www.acmicpc.net 1. 풀이 방법 해당 문제의 알고리즘은 구현이지만, 사실 가만 보면 분할 정복 문제와 다를 것이 없다. 방법은 별거 없다. 맨 왼쪽 빵보다 왼쪽에 있으면 패티가 없다. 중간 패티라면 왼쪽 패티 갯수를 넣는다. 왼쪽 빵과 중간 패티 사이라면 분할 정복으로 왼쪽만 분할 정복으로 넣는다. 오른쪽 빵과 중간 패티 사이라면 왼쪽 패티 갯수를 더하고 오른쪽을 햄버거를 분할 정..