본문 바로가기

Algorithm 💡272

[백준 5212번] 지구 온난화 https://www.acmicpc.net/problem/5212 import sysinput = sys.stdin.readline# 'X'는 땅을 나타내고, '.'는 바다를 나타낸다.# 50년이 지나면, 인접한 세 칸 또는 네 칸에 바다가 있는 땅은 모두 잠겨버린다# 상근이는 50년 후 지도를 그려보기로 했다.# 섬의 개수가 오늘날보다 적어질 것이기 때문에, 지도의 크기도 작아져야 한다.# 지도의 크기는 모든 섬을 포함하는 가장 작은 직사각형이다.# 50년이 지난 후에도 섬은 적어도 한 개 있다. # 또, 지도에 없는 곳, 지도의 범위를 벗어나는 칸은 모두 바다이다.R, C = map(int,input().split())area = [list(input().rstrip()) for _ in range(.. 2025. 1. 2.
[백준 2458번] 키 순서 https://www.acmicpc.net/problem/2458import sysinput = sys.stdin.readlineN, M = map(int,input().split())graph = [[] for _ in range(N+1)]r_graph = [[] for _ in range(N+1)]up_count = [0]*(N+1)down_count = [0]*(N+1)up_set = [set() for _ in range(N+1)]down_set = [set() for _ in range(N+1)]answer = 0for _ in range(M): a, b = map(int,input().split()) graph[a].append(b) r_graph[b].append(a)def .. 2024. 10. 29.
[백준 17779번] 게리맨더링2 https://www.acmicpc.net/problem/17779import sysfrom collections import dequeinput = sys.stdin.readline# 구역을 다섯 개의 선거구로 나눠야 하고, 각 구역은 다섯 선거구 중 하나에 포함되어야 한다.# 선거구는 구역을 적어도 하나 포함해야 하고, # 한 선거구에 포함되어 있는 구역은 모두 연결되어 있어야 한다. # 구역 A에서 인접한 구역을 통해서 구역 B로 갈 수 있을 때, 두 구역은 연결되어 있다고 한다# 중간에 통하는 인접한 구역은 0개 이상이어야 하고, 모두 같은 선거구에 포함된 구역이어야 한다.# 구역 (r, c)의 인구는 A[r][c]이고, 선거구의 인구는 선거구에 포함된 구역의 인구를 모두 합한 값# 선거구를 나누.. 2024. 10. 28.
[백준 2239번] 스도쿠 https://www.acmicpc.net/problem/2239import sysinput = sys.stdin.readline# 9×9 크기의 보드가 있을 때, 각 행과 각 열, 그리고 9개의 3×3 크기의 보드에# 1부터 9까지의 숫자가 중복 없이 나타나도록 보드를 채우면 된다# 하다 만 스도쿠 퍼즐이 주어졌을 때, 마저 끝내는 프로그램을 작성# 9개의 줄에 9개의 숫자로 보드가 입력된다. # 아직 숫자가 채워지지 않은 칸에는 0이 주어진다.# 9개의 줄에 9개의 숫자로 답을 출력# 답이 여러 개 있다면 그 중 사전식으로 앞서는 것을 출력# 즉, 81자리의 수가 제일 작은 경우를 출력한다.area = [list(map(int,list(input().rstrip()))) for _ in range(9.. 2024. 10. 28.
[백준 8911번] 거북이 https://www.acmicpc.net/problem/8911import sysinput = sys.stdin.readline# 상근이는 2차원 평면 위에서 움직일 수 있는 거북이 로봇을 하나 가지고 있다.# L과 R명령을 내렸을 때, 로봇은 이동하지 않고, 방향만 바꾼다.# 상근이는 자신의 컨트롤 프로그램으로 거북이가 이동한 영역을 계산# 출력 : 거북이가 지나간 영역을 모두 포함할 수 있는 가장 작은 직사각형의 넓이# 단, 거북이가 지나간 영역이 직사각형을 만들지 않는 경우도 있다.# F : 한 눈금 앞으로# B : 한 눈금 뒤로# L : 왼쪽으로 90도 회전# R : 오른쪽으로 90도 회전# 거북이는 가장 처음에 (0, 0)에 있고, 북쪽을 쳐다보고 있다.dx, dy = [-1,0,1,0], [.. 2024. 10. 28.
[삼성 SW 역량테스트 기출] 메이즈 러너 # M명의 참가자가 미로 탈출하기 게임에 참가# 미로는 N×N 크기의 격자# # 1초마다 모든 참가자는 한 칸씩 움직입니다.# 두 위치 (x1,y1), (x2,y2)의 최단거리는 ∣x1−x2∣+∣y1−y2∣로 정의# 모든 참가자는 동시에 움직입니다.# 상하좌우로 움직일 수 있으며, 벽이 없는 곳으로 이동할 수 있습니다.# 움직인 칸은 현재 머물러 있던 칸보다 출구까지의 최단 거리가 가까워야 합니다.# 움직일 수 있는 칸이 2개 이상이라면, 상하로 움직이는 것을 우선시합니다.# 참가가가 움직일 수 없는 상황이라면, 움직이지 않습니다.# 한 칸에 2명 이상의 참가자가 있을 수 있습니다.# # 모든 참가자가 이동을 끝냈으면, 다음 조건에 의해 미로가 회전합니다.# 한 명 이상의 참가자와 출구를 포함한 가장 .. 2024. 10. 12.