[백준] 9461, 10845 - Python3

shsh·2021년 12월 10일

백준

목록 보기
32/45

10845. 큐

https://www.acmicpc.net/problem/10845

내 풀이 - 성공

from sys import stdin
import collections

N = int(stdin.readline())

queue = collections.deque()

for _ in range(N):
    cmd = stdin.readline().split()
    
    if cmd[0] == "push":
        queue.append(int(cmd[1]))
    elif cmd[0] == "pop":
        if queue:
            print(queue.popleft())
        else:
            print(-1)
    elif cmd[0] == "size":
        print(len(queue))
    elif cmd[0] == "empty":
        if queue:
            print(0)
        else:
            print(1)
    elif cmd[0] == "front":
        if queue:
            print(queue[0])
        else:
            print(-1)
    elif cmd[0] == "back":
        if queue:
            print(queue[-1])
        else:
            print(-1)

deque 를 이용해서 queue 를 만들고
주어진 명령에 따라 각자 역할 수행

pop 할 때는 popleft 를 이용하고
front 는 0 번째, back 은 -1 번째를 출력했다.


9461. 파도반 수열

https://www.acmicpc.net/problem/9461

내 풀이 - 성공

from sys import stdin
import collections

T = int(stdin.readline())
nums = [0]*100
nums[0], nums[1], nums[2] = 1, 1, 1
nums[3], nums[4] = 2, 2

for i in range(5, 100):
    nums[i] = nums[i-5] + nums[i-1]

for _ in range(T):
    N = int(stdin.readline())
    print(nums[N-1])

인덱스 5 이상부터는
nums[i] = nums[i-5] + nums[i-1] 의 규칙이 있다는 것을 발견했다.

따라서 0 ~ 4 까지는 직접 초기화를 해주고 (1, 1, 1, 2, 2)
N 이 최대 100 까지이므로 nums[i] 를 모두 구해주고
입력받은 N print

profile
Hello, World!

0개의 댓글