[백준] Simulation 유형 풀이 모음 (1966, 3190, 10810, 10811, 10813, 14503번)

희희구리·2023년 10월 20일
0

백준

목록 보기
19/21
post-thumbnail
post-custom-banner

1966번 - 프린터 큐

check 배열을 사용해서 queue 사용해서 해본 코드

T = int(input())
for _ in range(T):
    n,m = map(int,input().split())
    tmp = list(map(int,input().split()))
    check = [0] * n
    check[m] = 1
    check = deque(check)
    findv = tmp[m]
    tmp = deque(tmp)

    cnt = 0

    while tmp:
        now = tmp.popleft()
        checknow = check.popleft()

        if all(now >= element for element in tmp):
            if now == findv and checknow == 1:
                print(cnt+1)
            else:
                cnt += 1
        else:
            tmp.append(now)
            check.append(checknow)

3190번 - 뱀

https://velog.io/@0imary/python3-%EB%B0%B1%EC%A4%80-3190%EB%B2%88-%EB%B1%80

10810번 - 공 넣기

그냥 공 넣는 문제..

n,m = map(int,input().split())
basket = [0] * (n+1)

for i in range(m):
    i,j,k = map(int,input().split())
    for num in range(i,j+1):
        basket[num] = k
    
for i in range(1,n+1):
    print(basket[i],end=' ')
    

10811번 - 바구니 뒤집기

이게 맞는 코드인지는 모르겠는데 그냥 뒤집어서 [::-1] 넣음..

n, m = map(int,input().split())
basket = [i for i in range(n+1)]
for i in range(m):
    s, e = map(int,input().split())
    basket[s:e+1] = basket[s:e+1][::-1]
for i in range(1,n+1):
    print(basket[i],end=' ')

10813번 - 공 바꾸기

걍 swap 하는 문제


n,m = map(int,input().split())
basket = [i for i in range(n+1)]

for _ in range(m):
    i,j = map(int,input().split())
    basket[i], basket[j] = basket[j], basket[i]

for i in range(1,n+1):
    print(basket[i],end=' ')

14503번 - 로봇 청소기

https://velog.io/@0imary/python3-%EB%B0%B1%EC%A4%80-14503%EB%B2%88-%EB%A1%9C%EB%B4%87%EC%B2%AD%EC%86%8C%EA%B8%B0

profile
beginner :>
post-custom-banner

0개의 댓글