본문 바로가기

Simulation

(14)
열쇠 (9328번) - 백준 (BOJ) https://www.acmicpc.net/problem/9328 9328번: 열쇠 상근이는 1층 빌딩에 침입해 매우 중요한 문서를 훔쳐오려고 한다. 상근이가 가지고 있는 평면도에는 문서의 위치가 모두 나타나 있다. 빌딩의 문은 모두 잠겨있기 때문에, 문을 열려면 열쇠가 www.acmicpc.net 백준 - 열쇠 (Keys) (9328번) 난이도 : Gold 1 알고리즘&자료구조 : BFS (너비우선탐색) & DFS (깊이우선탐색) & Simulation (구현) ★ 핵심 Idea ★ ◎ 아직 열지 못한 문들을 기준으로 BFS를 구현한다. 먼저 초기 탐색을 진행해서, 열지 못하는 문들을 찾는다. 예를 들어, 현재 [A, B, H, X]의 문을 아직 열지 못했고, 현재 갖고있는 열쇠가 [b, h]라면, B..
새로운 게임 (17780번) - 백준 (BOJ) https://www.acmicpc.net/problem/17780 17780번: 새로운 게임 재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하 www.acmicpc.net 백준 - 새로운 게임 (17780번) 난이도 : Gold 2 알고리즘&자료구조 : Simulation (구현) ★ 핵심 Idea ★ ◎ 전형적인 구현 문제로, 문제에서 하라는 대로 구현하면 된다. import sys input = sys.stdin.readline class Chess(): def __init__(self, N, K): board = [list(map(int, i..
소용돌이 예쁘게 출력하기 (1022번) - 백준 (BOJ) https://www.acmicpc.net/problem/1022 1022번: 소용돌이 예쁘게 출력하기 첫째 줄에 네 정수 r1, c1, r2, c2가 주어진다. www.acmicpc.net 백준 - 소용돌이 예쁘게 출력하기 (1022번) 난이도 : Gold 3 알고리즘&자료구조 : Simulation & Implementation (구현) 시간복잡도 (Time Complexity) : O( (r2-r1+1) * (c2-c1+1) ) ★ 핵심 Idea ★ ◎ 각 정사각형의 왼쪽 아래 꼭지점은, [(2 * 해당 좌표) + 1] ^ 2 가 된다. ex) (3, 3) 좌표 → [(2 * 3) + 1] ^ 2 = 7 ^ 2 = 49 현재 좌표가 어느 정사각형에 속해있는지, 행과 열 값중 더 큰 값을 통해 확인하..
집으로 (1069번) - 백준 (BOJ) https://www.acmicpc.net/problem/1069 1069번: 집으로 은진이는 지금 (X, Y)에 있고, (0, 0)에 있는 집으로 가능한 빨리 가려고 한다. 이동할 수 있는 방법은 다음 두 가지이다. 첫 번째 방법은 걷는것이다. 걸을 때는 1초에 1만큼 움직인다. 두 번째 방법 www.acmicpc.net 백준 - 집으로 (1069번) 난이도 : Gold 3 알고리즘&자료구조 : 기하 (Geometry) & 구현 (Simulation) ★ 핵심 Idea ★ 아래의 3가지 경우로 나눠서 각각 소요시간을 구한 후, 그 중 최단시간을 구하면 된다. if __name__ == '__main__': X, Y, D, T = map(int, input().split()) cur =..
가스관 (2931번) - 백준 (BOJ) https://www.acmicpc.net/problem/2931 2931번: 가스관 www.acmicpc.net 백준 - 가스관 (CIJEVI) (2931번) 난이도 : Gold 3 알고리즘&자료구조 : Simulation (구현) ★ 핵심 Idea ★ M에서 출발해서 파이프를 쭉 따라가며 중간에 끊긴 좌표를 찾고, 그 좌표의 상하좌우를 확인하면서 알맞은 모양의 파이프를 찾는다. import sys input = sys.stdin.readline class Pipe(): def __init__(self, R, C): self.R, self.C = R, C dd = [[-1, 0, 1, 0], [0, 1, 0, -1]] mapping = {0: 2, 1: 3, 2: 0, 3: 1} r,..
소문난 칠공주 (1941번) - 백준 (BOJ) https://www.acmicpc.net/problem/1941 1941번: 소문난 칠공주 총 25명의 여학생들로 이루어진 여학생반은 5×5의 정사각형 격자 형태로 자리가 배치되었고, 얼마 지나지 않아 이다솜과 임도연이라는 두 학생이 두각을 나타내며 다른 학생들을 휘어잡기 시작 www.acmicpc.net 백준 - 소문난 칠공주 (Rigging the Bovine Election) (1941번) 난이도 : Gold 3 알고리즘&자료구조 : Simulation (구현) & Combinations (조합) import sys input = sys.stdin.readline from itertools import combinations def _adjs(r, c): if 0 < r: yield r-1, c ..
감시 (15683번) - 백준 (BOJ) https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net 백준 - 감시 (15683번) 난이도 : Gold 4 알고리즘&자료구조 : Simulation (구현) & DFS (깊이우선탐색) import sys input = sys.stdin.readline from copy import deepcopy class Office(): def __init__(self, N, M): self.blind = 64 dr = [1, -1, 0, 0] dc ..
치즈 (2638번) - 백준 (BOJ) https://www.acmicpc.net/problem/2638 2638번: 치즈 첫째 줄에는 모눈종이의 크기를 나타내는 두 개의 정수 N, M (5 ≤ N, M ≤ 100)이 주어진다. 그 다음 N개의 줄에는 모눈종이 위의 격자에 치즈가 있는 부분은 1로 표시되고, 치즈가 없는 부분은 0으로 www.acmicpc.net 백준 - 치즈 (2638번) 난이도 : Gold 3 알고리즘 : Simulation & Implementation (구현), BFS or DFS import sys input = sys.stdin.readline def adjs_conds(r, c): if 0 < r: yield r-1, c if r < N-1: yield r+1, c if 0 < c: yield r, c-1 if c..