백준 13

[백준 13335] 트럭 (Swift)

문제 : https://www.acmicpc.net/problem/13335 13335번: 트럭 입력 데이터는 표준입력을 사용한다. 입력은 두 줄로 이루어진다. 입력의 첫 번째 줄에는 세 개의 정수 n (1 ≤ n ≤ 1,000) , w (1 ≤ w ≤ 100) and L (10 ≤ L ≤ 1,000)이 주어지는데, n은 다리를 건너는 트 www.acmicpc.net 1. 문제 이해하기 강을 가로지르는 하나의 차선으로 된 다리가 하나가 있고, 이 다리를 n 개의 트럭이 건너가려고 합니다. 트럭의 순서는 바꿀 수 없으며, 트럭의 무게는 서로 같지 않을 수 있습니다. 다리 칸은 w이며, 다리 1칸 당 차 1대가 올라갈 수 있고, 다리 칸까지만 차가 올라갈 수 있습니다. 다리 위에 있는 차는 1초당 1칸씩 이..

Algorithm/Swift 2021.10.03

[백준 5582] 공통 부분 문자열 (Swift)

문제 : https://www.acmicpc.net/problem/5582 5582번: 공통 부분 문자열 두 문자열이 주어졌을 때, 두 문자열에 모두 포함된 가장 긴 공통 부분 문자열을 찾는 프로그램을 작성하시오. 어떤 문자열 s의 부분 문자열 t란, s에 t가 연속으로 나타나는 것을 말한다. 예를 들 www.acmicpc.net 1. 문제 이해하기 두 문자열이 주어집니다. 문자열의 길이는 1 이상 4000 이하 2. 문제 풀이 생각하기 LCS(최장 공통 부분 수열)에 대한 문제를 풀어본 적이 있어서 문제 풀이에 대해서 어려움은 없었습니다. 만약 문자열에서 나올 수 있는 모든 substring을 만들고 비교하는 방식으로 문제를 접근한다면, 최악의 경우 길이 4000짜리 문자열 하나의 substring을 ..

Algorithm/Swift 2021.10.01

[백준 18428] 감시 피하기 (Swift)

문제 : https://www.acmicpc.net/problem/18428 18428번: 감시 피하기 NxN 크기의 복도가 있다. 복도는 1x1 크기의 칸으로 나누어지며, 특정한 위치에는 선생님, 학생, 혹은 장애물이 위치할 수 있다. 현재 몇 명의 학생들은 수업시간에 몰래 복도로 빠져나왔는데, 복 www.acmicpc.net 1. 문제 이해하기 NxN 크기의 그래프가 있습니다. 각 칸에는 선생님(T), 학생(S), 복도(X)가 존재하고 복도에 장애물을 세워서 선생님의 감시를 피하고자 합니다. 각 선생님은 자신의 위치에서 상, 하, 좌, 우 4가지 방향으로 감시를 진행하고 아무리 멀리 있더라도 장애물로 막히기 전까지 학생들을 모두 감시할 수 있습니다. 학생들은 복도의 빈칸 중에서 장애물을 설치할 위치를..

Algorithm/Swift 2021.10.01

[백준 2589] 보물섬 (Swift)

문제 : https://www.acmicpc.net/problem/2589 2589번: 보물섬 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 www.acmicpc.net 1. 문제 이해하기 행, 열의 크기가 50 이하인 그래프에서 각 칸에 L(육지), W(바다)가 주어지고 육지에서만 상하좌우로 움직일 수 있습니다. 한 칸 이동하는데 한 시간이 걸립니다. 보물은 여러 개의 육지 덩어리 중에서 육지 칸에서 육지 칸까지 가장 긴 거리 두 곳에 나누어 묻혀있습니다. 두 곳 사이의 거리는 최단 시간 경로입니다. 이때의 두 곳 사이의 최단 거리로 이동하는 시간을 출력합..

Algorithm/Swift 2021.08.10

[백준 14503] 로봇 청소기 (Swift)

문제 : https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 1. 문제 이해하기 이 문제는 문제 풀이를 시작하기 전에 문제를 잘 읽고 이해하고 푸셔야 할 것 같습니다. 크기 3

Algorithm/Swift 2021.08.05

[백준 12100] 2048(Easy) (Python)

문제 : https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 1. 문제 이해하기 1 0 : 북, 1 : 남, 2 : 서, 3 : 동 from itertools import product import sys, copy input = sys.stdin.readline n = int(input()) g = [list(map(int, input().split())) for _ in range(n)] totalCase = lis..

Algorithm/Python 2021.07.11

[백준 8911] 거북이 (Python)

문제 : https://www.acmicpc.net/problem/8911 8911번: 거북이 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 컨트롤 프로그램이 주어진다. 프로그램은 항상 문제의 설명에 나와있는 네가지 명령으로만 이루어져 www.acmicpc.net 1. 문제 이해하기 좌표 위에 거북이가 움직인 지점을 모두 포함하는 가장 작은 직사각형의 넓이 구하기 F : 한 눈금 앞으로, B : 한 눈금 뒤로, L: 왼쪽으로 90도 회전, R: 오른쪽으로 90도 회전 선분의 경우 넓이는 0 입력으로 테스트 케이스의 개수만큼의 테스트 케이스 결괏값을 출력하기 2. 문제 풀이 생각하기 방향을 조정하는 L, R이 있기 때문에 방향과 현재 좌표를 저장해야겠다고 생각..

Algorithm/Python 2021.07.10