시뮬레이션 46

백준(JAVA) 2636번 치즈 풀이

Java로 구현한 2636번 치즈 풀이입니다. https://www.acmicpc.net/problem/2636 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net import java.util.*; import java.io.*; public class Main { static int n, m; static int[][] data; static int[] dx = {-1, 1, 0, 0}; static int[] dy = {0, 0, -1, 1}; static List cheese_cnt = new ArrayList(); publ..

백준(Python) 2636번 치즈 풀이

Python으로 구현한 2636번 치즈 풀이입니다. https://www.acmicpc.net/problem/2636 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net from collections import deque def bfs() : visited = [[False] * m for _ in range(n)] q = deque() q.append([0, 0]) visited[0][0] = True count = 0 while q : x, y = q.popleft() for d in range(4) : nx = x + dx[..

백준(Python) 17135번 캐슬 디펜스 풀이

Python으로 구현한 17135번 캐슬 디펜스 문제 풀이입니다. https://www.acmicpc.net/problem/17135 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net import copy # import sys # input = sys.stdin.readline def combinations(arr, r) : for i in range(len(arr)) : if r == 1 : yield [arr[i]] else : for next in combinations(arr[i+1:], r-1) : yield [..

백준(JAVA) 1966번 프린터 큐 풀이

Java으로 구현한 1966번 프린터 큐 문제 풀이입니다. https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Bu..

백준(Python) 1966번 프린터 큐 풀이

Python으로 구현한 1966번 프린터 큐 문제 풀이입니다. https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net t = int(input()) for _ in range(t) : n, m = map(int, input().split()) priority = list(map(int, input().split())) check = [0 for _ in range(n)] check[m] = 1 count = 0 while True : if priority..

백준(Python) 23290번 마법사 상어와 복제 풀이

Python으로 구현한 23290번 마법사 상어와 복제 문제 풀이입니다. https://www.acmicpc.net/problem/23290 23290번: 마법사 상어와 복제 첫째 줄에 물고기의 수 M, 상어가 마법을 연습한 횟수 S가 주어진다. 둘째 줄부터 M개의 줄에는 물고기의 정보 fx, fy, d가 주어진다. (fx, fy)는 물고기의 위치를 의미하고, d는 방향을 의미한다. 방향 www.acmicpc.net # ←, ↖, ↑, ↗, →, ↘, ↓, ↙ (45도 반시계 주의! - 물고기 이동) dx = [0, -1, -1, -1, 0, 1, 1, 1] dy = [-1, -1, 0, 1, 1, 1, 0, -1] # 상어 (상좌하우) 연속해서 3칸 이동 shark_dx = [-1, 0, 1, 0] s..

백준(Python) 23291번 어항 정리 풀이

Python으로 구현한 23291번 어항 정리 문제 풀이입니다. https://www.acmicpc.net/problem/23291 23291번: 어항 정리 마법사 상어는 그동안 배운 마법을 이용해 어항을 정리하려고 한다. 어항은 정육면체 모양이고, 한 변의 길이는 모두 1이다. 상어가 가지고 있는 어항은 N개이고, 가장 처음에 어항은 일렬로 바 www.acmicpc.net # 1. 물고기의 수가 가장 적은 어항에 물고기를 한 마리 넣는다. # 2. 가장 왼쪽에 있는 어항을 그 어항의 오른쪽에 있는 어항의 위에 올리기 # 3. 행이 2 이상이면, 시계방향으로 90도 회전 후 어항 위에 올리기 # 4. 바닥에 있는 어항의 범위보다 초과되면 안됌 # 5. 물고기의 수를 조절 : 동시에 발생 # 6. 어항을 ..

백준(Python) 23289번 온풍기 안녕! 풀이

Python으로 구현한 23289번 온풍기 안녕! 문제 풀이입니다. https://www.acmicpc.net/problem/23289 23289번: 온풍기 안녕! 유난히 추운 날씨가 예상되는 이번 겨울을 대비하기 위해 구사과는 온풍기를 설치하려고 한다. 온풍기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기 www.acmicpc.net from copy import deepcopy from collections import deque # 우, 좌, 상, 하 dx = [0, 0, 0, -1, 1] dy = [0, 1, -1, 0, 0] r, c, k = map(int, input().split()) heater, checker = [], [] for i in ra..

백준(Python) 21609번 상어 중학교 풀이

Python으로 구현한 21609번 상어 중학교 문제 풀이입니다. https://www.acmicpc.net/problem/21609 21609번: 상어 중학교 상어 중학교의 코딩 동아리에서 게임을 만들었다. 이 게임은 크기가 N×N인 격자에서 진행되고, 초기에 격자의 모든 칸에는 블록이 하나씩 들어있고, 블록은 검은색 블록, 무지개 블록, 일반 블록 www.acmicpc.net from collections import deque n, m = map(int, input().split()) data = [list(map(int, input().split())) for _ in range(n)] result = 0 def bfs(x, y, num) : q = deque() q.append([x, y]) d..

백준(Python) 20061번 모노미노도미노 2 풀이

Python으로 구현한 20061번 모노미노도미노 2 문제 풀이입니다. https://www.acmicpc.net/problem/20061 20061번: 모노미노도미노 2 모노미노도미노는 아래와 같이 생긴 보드에서 진행되는 게임이다. 보드는 빨간색 보드, 파란색 보드, 초록색 보드가 그림과 같이 붙어있는 형태이다. 게임에서 사용하는 좌표 (x, y)에서 x는 행, www.acmicpc.net n = int(input()) blue = [[0] * 6 for _ in range(4)] green = [[0] * 4 for _ in range(6)] result = 0 def move_blue(t, x) : global blue y = 1 if t == 1 or t == 2 : while True : if ..