코딩테스트 132

[백준 python 2346] 풍선 터뜨리기

[Silver III] 풍선 터뜨리기 - 2346 문제 링크 성능 요약 메모리: 34016 KB, 시간: 64 ms 분류 자료 구조, 덱 제출 일자 2023년 12월 25일 21:12:00 문제 설명 1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선이 있다. 각 풍선 안에는 종이가 하나 들어있고, 종이에는 -N보다 크거나 같고, N보다 작거나 같은 정수가 하나 적혀있다. 이 풍선들을 다음과 같은 규칙으로 터뜨린다. 우선, 제일 처음에는 1번 풍선을 터뜨린다. 다음에는 풍선 안에 있는 종이를 꺼내어 그 종이에 적혀있는 값만큼 이동하여 다음 풍선을 터..

[백준 python 11866] 요세푸스 문제 0

[Silver V] 요세푸스 문제 0 - 11866 문제 링크 성능 요약 메모리: 34008 KB, 시간: 88 ms 분류 자료 구조, 구현, 큐 제출 일자 2023년 12월 23일 16:56:45 문제 설명 요세푸스 문제는 다음과 같다. 1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다. N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오. 입력 첫..

[백준 python 12789] 도키도키 간식드리미

[Silver III] 도키도키 간식드리미 - 12789 문제 링크 성능 요약 메모리: 31120 KB, 시간: 40 ms 분류 자료 구조, 스택 제출 일자 2023년 12월 22일 19:32:49 문제 설명 인하대학교 학생회에서는 중간, 기말고사 때마다 시험 공부에 지친 학우들을 위해 간식을 나눠주는 간식 드리미 행사를 실시한다. 승환이는 시험 기간이 될 때마다 간식을 받을 생각에 두근두근 설레서 시험 공부에 집중을 못 한다. 이번 중간고사에서도 역시 승환이는 설레는 가슴을 안고 간식을 받기 위해 미리 공지된 장소에 시간 맞춰 도착했다. 그런데 이게 무슨 날벼락인가! 그 곳에는 이미 모든 학생들이 모여있었고, 승환이는 마지막 번호표를 받게 되었다. 설상가상으로 몇몇 양심에 털이 난 학생들이 새치기를 거..

[백준 python 9012] 괄호

[Silver IV] 괄호 - 9012 문제 링크 성능 요약 메모리: 31120 KB, 시간: 40 ms 분류 자료 구조, 스택, 문자열 제출 일자 2023년 12월 21일 21:25:58 문제 설명 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(concatenation)시킨 새로운 문자열 xy도 VPS 가 된다..

[백준 python 28278] 스택 2

[Silver IV] 스택 2 - 28278 문제 링크 성능 요약 메모리: 71112 KB, 시간: 1260 ms 분류 자료 구조, 스택 제출 일자 2023년 12월 21일 20:03:56 문제 설명 정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 다섯 가지이다. 1 X: 정수 X를 스택에 넣는다. (1 ≤ X ≤ 100,000) 2: 스택에 정수가 있다면 맨 위의 정수를 빼고 출력한다. 없다면 -1을 대신 출력한다. 3: 스택에 들어있는 정수의 개수를 출력한다. 4: 스택이 비어있으면 1, 아니면 0을 출력한다. 5: 스택에 정수가 있다면 맨 위의 정수를 출력한다. 없다면 -1을 대신 출력한다. 입력 첫째 줄에 명령의 수 N 이 주어진다. (1 ..

[백준 python 13909] 창문 닫기

[Silver V] 창문 닫기 - 13909 문제 링크 성능 요약 메모리: 33240 KB, 시간: 40 ms 분류 수학, 정수론 제출 일자 2023년 12월 20일 21:14:31 문제 설명 서강대학교 컴퓨터공학과 실습실 R912호에는 현재 N개의 창문이 있고 또 N명의 사람이 있다. 1번째 사람은 1의 배수 번째 창문을 열려 있으면 닫고 닫혀 있으면 연다. 2번째 사람은 2의 배수 번째 창문을 열려 있으면 닫고 닫혀 있으면 연다. 이러한 행동을 N번째 사람까지 진행한 후 열려 있는 창문의 개수를 구하라. 단, 처음에 모든 창문은 닫혀 있다. 예를 들어 현재 3개의 창문이 있고 3명의 사람이 있을 때, 1번째 사람은 1의 배수인 1,2,3번 창문을 연다. (1, 1, 1) 2번째 사람은 2의 배수인 2..

[백준 python 17103] 골드바흐 파티션

[Silver II] 골드바흐 파티션 - 17103 문제 링크 성능 요약 메모리: 48872 KB, 시간: 2636 ms 분류 수학, 정수론, 소수 판정, 에라토스테네스의 체 제출 일자 2023년 12월 20일 19:01:03 문제 설명 골드바흐의 추측: 2보다 큰 짝수는 두 소수의 합으로 나타낼 수 있다. 짝수 N을 두 소수의 합으로 나타내는 표현을 골드바흐 파티션이라고 한다. 짝수 N이 주어졌을 때, 골드바흐 파티션의 개수를 구해보자. 두 소수의 순서만 다른 것은 같은 파티션이다. 입력 첫째 줄에 테스트 케이스의 개수 T (1 ≤ T ≤ 100)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 N은 짝수이고, 2 < N ≤ 1,000,000을 만족한다. 출력 각각의 테스트 케이스마다 골..

[백준 python 4948] 베르트랑 공준

[Silver II] 베르트랑 공준 - 4948 문제 링크 성능 요약 메모리: 39384 KB, 시간: 840 ms 분류 수학, 정수론, 소수 판정, 에라토스테네스의 체 제출 일자 2023년 12월 19일 20:31:18 문제 설명 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼프가 1850년에 증명했다. 예를 들어, 10보다 크고, 20보다 작거나 같은 소수는 4개가 있다. (11, 13, 17, 19) 또, 14보다 크고, 28보다 작거나 같은 소수는 3개가 있다. (17,19, 23) 자연수 n이 주어졌을 때, n보다 크고, 2n보다 작거나 같은 소수..

[백준 python 1929] 소수 구하기

[Silver III] 소수 구하기 - 1929 문제 링크 성능 요약 메모리: 48592 KB, 시간: 216 ms 분류 수학, 정수론, 소수 판정, 에라토스테네스의 체 제출 일자 2023년 12월 19일 16:02:04 문제 설명 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 출력 한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다. import math def prime(x, y): arr = [False, False] + [True] * (y-1) for i in range(2, int(math.sqrt(y)) + 1):..

[백준 python 4134] 다음 소수

[Silver IV] 다음 소수 - 4134 문제 링크 성능 요약 메모리: 33240 KB, 시간: 1456 ms 분류 브루트포스 알고리즘, 수학, 정수론, 소수 판정 제출 일자 2023년 12월 18일 23:34:21 문제 설명 정수 n(0 ≤ n ≤ 4*109)가 주어졌을 때, n보다 크거나 같은 소수 중 가장 작은 소수 찾는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. 출력 각각의 테스트 케이스에 대해서 n보다 크거나 같은 소수 중 가장 작은 소수를 한 줄에 하나씩 출력한다. import math import sys input = sys.stdin.readline def prime(x): if x == 0..