https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 문제 해석 이 문제는 바이러스인 2가 상하좌우로 퍼지는데 이를 벽 3개를 생성하여 가장 많은 안전 영역의 크기를 구하는 문제이다. 코드 from collections import deque input = __import__('sys').stdin.readline # Input n, m = map(int, input().split()) arr = [] makeWall = [] for _ in range(n): ..
https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 문제 해석 최소 힙, 최대 힙 과 비슷한 문제로 힙을 사용하는 문제이다. 입력으로 정수를 입력받고, 이를 배열에 넣는다. 만약 입력된 수가 0이라면 배열에서 가장 작은 절대값을 가진 수를 출력한다. 만약 배열에 수가 존재하지 않으면 0을 출력한다. 코드 import heapq input = __import__('sys').stdin.readline n = int(input()..
https://www.acmicpc.net/problem/2776 2776번: 암기왕 연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며, www.acmicpc.net 문제 해석 간단히 수첩 2에 적혀 놓은 정수가 수첩 1에 적혀 있는지 찾는 문제이다. 코드 input = __import__('sys').stdin.readline t = int(input()) for k in range(t): n = int(input()) arr = list(map(int, input().split())) m = int(input()) isIn = list(map(int, input..
https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 문제 해석 N * M 크기의 방이 존재한다. 이 방의 가장자리는 모두 벽으로 이루어져 있고, 추가적인 벽이 존재 할 수 있다. 벽은 1, 빈 공간은 0으로 입력된다. 로봇 청소기는 다음과 같은 규칙을 통해 동작한다. 1. 현재 위치를 청소한다. 2. a. 현재 위치에서 현재 방향을 기준으로 왼쪽 방향이 청소하지 않은 공간이라면 회전하고, 전진한 후 1번부터 진행한다. b. 현재 위치에서 현재 방..
https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 문제 해석 N 개의 수가 주어지면 주어진 조건을 사용하여 1로 만드는 최소 연산 횟수를 구하는 문제이다. 예시로 10의 경우에 10 > 9 > 3 > 1 로 바꿀 수 있으므로 3을 출력해야 한다. 코드 input = __import__('sys').stdin.readline n = int(input()) dp = [-1] * 1000001 dp[0] = 0 dp[1] = 0 dp[2] = 1 dp[3] = 1 for i in range(4,n+1): dp[i] = dp[i-1] + 1 if i % 2 == 0:..