https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 문제 해석 0과 1로 이루어진 문자열이 주어진다. 해당 문자열에서 연속된 문자열을 뒤집어서 1 또는 0으로만 이루어진 문자열을 만드는 뒤집는 최소 횟수를 구하는 문제이다. 코드 input = __import__('sys').stdin.readline s = input().strip() ans = 0 flag = s[0] for i in range(1, len(s)): if flag == s[i]:..
https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net 문제 해석 지원자의 서류 성적, 면접 성적의 순위가 주어진다. 두 개의 성적 어느한 것도 다른 지원자보다 떨이지지 않으면 선발한다. 즉 다른 지원자의 순위보다 모두 낮다면 떨어진다. 선발할 수 있는 신입사원의 최대 인원수를 구하는 문제이다. 코드 input = __import__('sys').stdin.readline t = int(input()) for i in range(..
https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 문제 해석 회의 시간이 주어진다. 한 회의실에서 최대한 많이 회의를 할 수 있는 갯수를 출력하는 문제. 코드 # BOJ 1931 n = int(input()) arr = [] for i in range(n): start, end = map(int, input().split()) arr.append((start, end)) # 정렬 / 우선순위 1 = 회의 종료시간이 작은 순서대로, 2 = 회의 시작 시간이 작은 순서대로 arr = sorted(arr, key = lambda x: [x[1], x[0]]) ans ..
https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 문제 해석 숫자 묶음이 주어진다. 주어진 숫자 묶음을 비교할 때 가장 적은 횟수로 비교하는 횟수를 구하는 문제. 코드 import heapq input = __import__('sys').stdin.readline n = int(input()) hq = [] ans = 0 for _ in range(n): heapq.heappush(hq, int(input())) while len(hq) > 1: a = heapq.heappop(hq) b = heapq.heappop(hq) ans += a + b heapq.he..
https://www.acmicpc.net/problem/17141 17141번: 연구소 2 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 승원이는 연구소의 특정 위치에 바이러스 M개를 놓을 것이고, 승원이의 신호와 동시에 바이 www.acmicpc.net 문제 해석 1은 벽이고, 2는 바이러스를 놓을 수 있는 연구소에 m개의 바이러스를 선택하여 퍼지도록 하였을 때 최소 시간이 되는 경우의 시간을 출력하시오. 코드 # BOJ 17141 from collections import deque n, virusNum = map(int, input().split()) arr = [] start = [] wall = [] dx, dy = [-1, 1, 0, 0], [0..