본문 바로가기

PS38

[백준] 24511번: queuestack 파이썬 풀이 https://www.acmicpc.net/problem/24511 큐스택 이 문제는 일단 문제를 이해하는 것 자체가 문제였다.고맙게도 다른 분이 쉽게 그림과 함께 설명해놓은 블로그 글을 보고 이해했다... 문제 설명도현이가 제안한 queuestack은 큐와 스택을 혼합한 자료구조입니다. queuestack은 N개의 자료구조(큐 혹은 스택)가 나열되어 있으며, 각 자료구조에 한 개의 원소가 들어 있다. 이 자료구조의 작동 방식은 간단하다. 새로운 원소를 첫 번째 자료구조에 삽입한 후, 이 자료구조에서 pop하여 나온 값을 두 번째 자료구조에 삽입하는 방식으로 마지막 자료구조까지 연속적으로 이어진다. 마지막 자료구조에서 나온 값을 리턴한다. 수열 C의 원소를 queuestack에 넣은 후, 리턴된 값을 출.. 2024. 9. 23.
[백준] 13909번: 창문 닫기 파이썬 https://www.acmicpc.net/problem/13909문제 설명창문이 n개 있고, 1번부터 n번까지 번호가 붙어 있습니다. 처음에는 모든 창문이 닫혀있습니다. 어떤 사람이 다음과 같은 규칙으로 창문을 열고 닫습니다. 1. 첫 번째 사람은 모든 창문을 연다. 2. 두 번째 사람은 2의 배수 번호에 해당하는 창문을 연다(이미 열려있으면 닫는다). 3. 세 번째 사람은 3의 배수 번호에 해당하는 창문을 연다(이미 열려있으면 닫는다). 4. 계속해서 n번째 사람은 n의 배수에 해당하는 창문을 열거나 닫는다. 이 과정을 거친 후에, 열려있는 창문의 개수를 구하는 문제입니다. 처음 생각했던 코드 처음에는 모든 창문을 하나씩 살펴보고, n번 사람까지 창문을 열고 닫는 과정을 구현했다. 이를 위해 각 사람.. 2024. 9. 19.
[백준] 17103번: 골드바흐 파티션 파이썬 https://www.acmicpc.net/problem/17103골드바흐 파티션 문제는 짝수 \( n \)을 두 소수의 합으로 표현하는 방법의 개수를 찾는 문제이다. 골드바흐의 추측에 따르면, 2보다 큰 모든 짝수는 두 소수의 합으로 표현될 수 있다. 이 문제에서는 주어진 짝수 n 에 대해, 두 소수의 합으로 n을 나타내는 모든 경우의 수를 찾아 출력하는 게 목표이다. 처음에는 단순하게 for문으로 순서대로 돌면서 n-i와 i가 둘 다 소수인지 판별하도록 코드를 짰다.그런데 시간초과에 걸렸다.그래서 미리 1000000까지의 소수를 배열에 저장해놓고 배열을 체크하는 식으로 구현했다. 코드 풀이import sysimport mathdef is_primenum(x): if x == 1: r.. 2024. 9. 9.
[백준] 4134번: 다음 소수 파이썬 https://www.acmicpc.net/problem/4134 주어진 수보다 크거나 같은 첫 번째 소수를 찾는 문제. 입력된 수가 소수가 아니면 그보다 큰 수 중에서 가장 작은 소수를 찾아 출력하면된다.  import sysimport mathdef is_primenum(x): for i in range(2, int(math.sqrt(x)) + 1): if x % i == 0: return False return Truen = int(sys.stdin.readline())for _ in range(n): num = int(sys.stdin.readline()) while True: if num == 0 or num == 1: .. 2024. 9. 6.