목록전체 글 (270)
DHistory
문제 15903번: 카드 합체 놀이 첫 번째 줄에 카드의 개수를 나타내는 수 n(2 ≤ n ≤ 1,000)과 카드 합체를 몇 번 하는지를 나타내는 수 m(0 ≤ m ≤ 15×n)이 주어진다. 두 번째 줄에 맨 처음 카드의 상태를 나타내는 n개의 자연수 a1, www.acmicpc.net 풀이 """ 자연수 n장 i번 카드에는 ai가 쓰여있다. 카드 합체 과정 1. x번 카드와 y번 카드를 골라 두 장에 쓰여진 수를 더한 값을 계산한다. (x != y) 2. 계산한 값을 x번 카드와 y번 카드 두 장 모두 덮어 쓴다. 총 m번 하면 놀이가 종료된다. m번 후 n장의 카드에 쓰여있는 수를 모두 더한 값이 이 놀이의 점수이다. 이 점수를 가작 작게 만드는 것이 놀이의 목표이다. 1 2 3 4 3 3 3 4 6..
문제 1080번: 행렬 첫째 줄에 행렬의 크기 N M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 행렬 A가 주어지고, 그 다음줄부터 N개의 줄에는 행렬 B가 주어진다. www.acmicpc.net 풀이 """ 행렬 A를 행렬 B로 바꾸는데 필요한 연산의 횟수의 최솟값을 구하시오. 행렬의 연산은 3x3 크기의 부분 행렬의 모든 원소를 뒤집는 것이다. 100 000 011 011 000 100 """ import sys n, m = map(int, sys.stdin.readline().rstrip().split()) matrix = [] for _ in range(n * 2): row = list(sys.stdin.readline().rstrip())[:m] matr..
문제 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net 풀이 """ 1차 서류심사 / 2차 면접시험 다른 모든 지원자와 비교했을 때 서류심사 성적과 면접시험 성적 중 적어도 하나가 다른 지원자보다 떨어지지 않는 자만 선발 선발할 수 있는 신입사원의 최대 인원수 5 3 2 1 4 4 1 2 3 5 5 === 4 1 4, 2 3, 3 2, 4 1, 5 5 --- 7 3 6 7 3 4 2 1 4 5 7 2 5 6 1 === 3 o 1 4 x 2 5 x 3 6 o 4 2 x 5 7 o 6 1 x ..
문제 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 풀이 """ N개의 회의에 대하여 회의실 사용표를 만든다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져있다. 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. (시작 시간과 끝나는 시간이 동일한 경우 시작하자마자 끝나는 것으로 생각한다.) 0 6 1 4 2 13 3 5 3 8 5 7 5 8 6 10 8 11 8 12 12 14 1 4 7 7 4 7 3 7 5 7 6 7 """ import sys n = int(sys.stdin..
문제 2872번: 우리집엔 도서관이 있어 상근이는 컴퓨터 공학의 일인자가 되기 위해 책을 매우 많이 구매했다. 하지만, 집에 책장이 없어서 책을 탑처럼 쌓아놓고 있다. 오늘은 오랜만에 상근이가 집에서 휴식을 취하는 날이다. 상근 www.acmicpc.net 풀이 """ 책을 탑처럼 쌓아놓고 있다. 책을 알파벳 순서대로 정렬하려고 한다. 사전 순으로 앞에 있는 책은 가장 위에 놓고 가장 뒤에 있는 책은 가장 밑에 놓아야한다. - 책을 정렬할 때 사용할 수 있는 방법은 책 하나를 뺀 다음, 가장 위에 놓는 것이다. 1 3 4 2 5 2 3 4 1 5 2 3 4 5 1 1 3 2 5 6 4 """ import sys n = int(sys.stdin.readline().rstrip()) books = [] fo..