문제 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가�� www.acmicpc.net 문제 풀이 아기 상어가 NxN 크기의 공간에 물고기를 먹으면서 이동 할때, 최단 시간을 반환하여야 한다. 문제에서는 아기 상어가 움직이기 위한 조건들이 존재한다. 아기 상어는 자신보다 크거나 같은 크기의 물고기는 먹을 수 없다. 가장 가까이 있는 물고기 부터 우선적으로 먹어야 한다. 여러 마리를 먹을 수 있다면, 가장 왼쪽에 있는 물고기를 우선 순위로 먹어야 한다. 문제를 처음에는 `BFS`와 `sort`를 통해 풀 었지만, `heapq`를 활용할..
문제 코딩테스트 연습 - 단속카메라 [[-20,15], [-14,-5], [-18,-13], [-5,-3]] 2 programmers.co.kr 문제 풀이 고속도로를 이동하는 모든 차량이 고속도로를 이용하면서 단속용 카메라를 한 번은 만나도록 카메라를 설치하여야 한다. 이때 최소 몇 대의 카메라를 설치해야 하는지 반환하는 문제이다. 처음에 문제를 접하였을 때는 카메라를 만났는지 모든 구간을 확인하며 문제를 풀고자 하였다. 정답은 맞았지만 다른 사람들이 푼 코드를 보니 더 짧고, 빠르게 풀 수 있는 방법이 있었다.😂 설치된 카메라를 진입 지점으로 갱신해 가며, 진입 지점이 설치된 카메라의 위치보다 작다면 카메라를 추가하고 위치를 갱신하면 `O(N)`의 시간으로 문제를 해결할 수 있다. 코드 from mat..
문제 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를�� programmers.co.kr 문제 풀이 하드 디스크의 요청된 작업을 작업이 종료되는 시간이 빠른 순으로 처리하도록 하여 평균 처리 시간을 반환하는 문제이다. 요청된 작업 순으로 정렬 후에 처리할 작업을 하나씩 `pop`하여 `heap`을 통해 처리 시간이 가장 큰 작업부터 루트가 되도록 유지한다. 이와 같은 과정을 통해, 문제에 요구하는 것과 같이 작업을 처리할 수 있다. 코드 import heapq from collections import deque RQEUST = 0 d..
문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 M명의 사람이 입국심사를 받으려고 할 때, 입국 심사의 소요 시간이 최소가 되는 시간을 출력하는 문제이다. 문제를 풀기 위해서는 `이분 탐색`을 통해, 심사가 가능한 최소 시간을 구할 수 있다. 이 문제에서 이분 탐색의 `mid` 값은 입국 심사하는데 소요되는 전체 시간을 의미한다. 예를 들어 `mid`가 30초라면 30 // 심사하는데 걸리는 시간을 구하게 되면 입국할 수 있는 사람 수가 결정되게 된다. 코드 T = int(input()) for test_case in range(1, T + 1): answer = 0 n, m = map(int,..