본문 바로가기

Algorithm Problems/시뮬레이션

(4)
[백준/C++] 로봇 청소기 문제https://www.acmicpc.net/problem/14503문제 요약로봇 청소기가 있는 방은 N × M 크기의 직사각형 좌표로 나타낼 수 있다. 방의 각 칸은 벽 또는 빈 칸이고, 청소기는 바라보는 방향(동, 서, 남, 북)이 있다. 로봇 청소기는 다음과 같이 작동한다. 1. 현재 칸이 아직 청소되지 않은 경우- 현재 칸을 청소한다. 2. 현재 칸의 주변 4칸 중 청소되지 않은 빈 칸이 없는 경우- 바라보는 방향을 유지한 채로 한 칸 후진할 수 있다면, 한 칸 후진하고 1번으로 돌아간다.- 바라보는 방향의 뒤쪽 칸이 벽이라 후진할 수 없다면, 작동을 멈춘다. 3. 현재 칸의 주변 4칸 중 청소되지 않은 빈 칸이 있는 경우- 반시계 방향으로 90도 회전한다.- 바라보는 방향을 기준으로 앞쪽 칸이..
[백준/C++] 13335번: 트럭 문제 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 문제 요약 강을 가로지르는 하나의 차선으로 된 다리가 있다. n개의 트럭이 다리를 건너려고 한다. 각 트럭은 무게를 갖고, 다리 위에 있는 트럭들의 무게의 합은 다리의 최대 하중 L보다 작거나 같아야한다. 다리의 길이 w는 단위 길이이고, 트럭들은 단위 시간(1)에 단위 길이(1)만큼 이동할 수 있다. 모든 트럭이 다리를 건너는 시간을 출력한다..
[백준/python] 21608번: 상어 초등학교 문제 https://www.acmicpc.net/problem/21608 21608번: 상어 초등학교 상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호 www.acmicpc.net 문제 요약 N × N 크기의 교실에 조건에 맞게 학생들을 배치하고 그들의 만족도를 출력한다. 조건 1. 비어있는 칸 중에서 좋아하는 학생이 인접한 칸에 가장 많은 칸으로 자리를 정한다. 2. 1을 만족하는 칸이 여러 개이면, 인접한 칸 중에서 비어있는 칸이 가장 맣은 칸으로 자리를 정한다. 3. 2를 만족하는 칸도 여러 개인 경우에는 행의 번호가 가장 작은 칸으로, 그러한 칸도 여..
[백준/python] 20057번: 마법사 상어와 토네이도 문제 https://www.acmicpc.net/problem/20057 20057번: 마법사 상어와 토네이도 마법사 상어가 토네이도를 배웠고, 오늘은 토네이도를 크기가 N×N인 격자로 나누어진 모래밭에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c열을 의미하고, A[r][c]는 (r, c)에 있는 모래의 양을 www.acmicpc.net 문제 요약 N × N 격자로 이루어진 모래밭 가운데서 토네이도가 이동하며 해당 칸에 있는 모래를 흩뿌린다. 모래밭을 입력 받고 격자 밖으로 나간 모래의 양을 출력한다. + 토네이도는 모래밭의 (0, 0) 좌표에서 소멸된다. 코드 # 토네이도 이동방향 delta = [(0, -1), (1, 0), (0, 1), (-1, 0)] # 좌, 하, 우, 상 # 토네이도..