목록시뮬레이션 (21)
기록방
👉 문제링크 13459번: 구슬 탈출 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 🔸 문제 분석 🔸 N x M 보드판에 모서리는 막혀있고, 빨간 공 : R, 파란 공 : B, 구멍 : O 가 주어진다. 보드판을 기울이면 두 공이 움직일 수 있는 공간 끝까지 한쪽으로 이동한다. 빨간 공 만 구멍으로 뺄 수 있으면 1, 없으면 0 을 출력한다. 보드판을 기울이는 4가지 선택에 따른 결과를 확인해야 하므로 BFS를 사용한다. 공의 굴러감, 게임 종료 확인을 시뮬레이션한다. 🔸 코드 🔸 imp..
👉 문제링크 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net 🔸 문제 분석 🔸 H x W 격자 판에 치즈가 있다. 치즈는 가장자리에 놓이지 않는다. 공기와 접촉한 치즈는 한 시간 뒤 녹아 없어진다. 치즈 안에는 1개 이상의 구멍이 있다. 구멍 안의 공기는 외부 공기와 접촉하기 전까진 치즈를 녹이지 않는다. 치즈가 모두 녹아 없어지는 데 까지 걸린 시간과 직전 치즈 개수를 출력한다. 그래프 탐색이므로 BFS혹은 DFS를 사용한다. 🔸 코드 🔸 import java.io.BufferedReader; import java.io.IOE..
👉 문제링크 1063번: 킹 8*8크기의 체스판에 왕이 하나 있다. 킹의 현재 위치가 주어진다. 체스판에서 말의 위치는 다음과 같이 주어진다. 알파벳 하나와 숫자 하나로 이루어져 있는데, 알파벳은 열을 상징하고, 숫자는 www.acmicpc.net 🔸 문제 분석 🔸 8 x 8 체스판에 킹과 돌이 놓여있다. 킹을 8방향으로 움직을 수 있는데, 돌이 있는 자리면 돌을 킹의 움직임과 같은 방향으로 민다. 킹 혹은 돌이 체스판을 벗어나는 움직임이라면 넘어가고 다음 동작을 수행한다. 🔸 코드 🔸 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in);..
👉 문제링크 5566번: 주사위 게임 상근이는 혼자 보드 게임을 하고 있다. 이 보드 게임의 보드는 N칸으로 이루어져 있고, 출발점은 1칸, 도착점은 N칸이다. 각 칸에는 지시 사항이 적혀있다. 지시 사항은 말을 얼만큼 이동해야 하 www.acmicpc.net 🔸 문제 분석 🔸 보드 게임의 정보를 입력받고, 주사위를 던진 결과를 받았을때, 몇 번째로 주사위를 던졌을때 게임이 끝나는지 출력한다. 보드 게임의 정보를 배열에 저장한다. 주사위 던진 결과를 하나씩 받으며 계산한다. 🔸 코드 🔸 import sys input = sys.stdin.readline n, m = map(int,input().split()) board = [0] * n for i in range(n): board[i] = int(inp..
👉 문제링크 4998번: 저금 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트는 한 줄로 이루어져 있고, N, B, M이 주어진다. M은 항상 N보다 크다. N과 M은 항상 백만보다 작거나 같은 수이고, 음수 또는 0이 아니다 www.acmicpc.net 🔸 문제 분석 🔸 입력이 끝날때까지 테스트 케이스를 입력받는다. 실수형 N, B, M 을 입력받는다. N이 몇 번 B%만큼 커져야 M을 넘는지 출력한다. 🔸 코드 🔸 import sys lines = sys.stdin.readlines() for line in lines: n, b, m = map(float,line.split()) count = 0 while n