공부/파이썬

#4. 백준 10811번 (python)

김지똥 2024. 2. 29. 15:42

문제

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

 

10811번: 바구니 뒤집기

도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2

www.acmicpc.net

 

n, m 입력받고

리스트 만들고

m번 반복한 뒤 i, j 입력받고

i, j 역순으로 만들면 될 거 같은데

 

역순 어캐 하지

n, m = map(int, input().split())
list = [x for x in range(1, n)]

for i in range(m):
    i, j = map(int, input().split())
    
for item in list[i - 1 : j - 1 : -1]:
    print(item)

 이렇게 했는데 출력이 안 됩니다

 

뭐가 문제일까

 

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

for _ in range(m):
    i, j = map(int, input().split())
    
    list[i - 1 : j] = reversed(list[i - 1 : j])
    

print(list)

 

이렇게 바꿔봤습니다

 

range 범위를 잘못 설정했고

 

지정된 범위만 역순으로 만들기 위해선 저렇게 하면 된다고 하더라구요

 

그래도 틀렸대요 백준에서

 

뭐가 문제일까요

 

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

for _ in range(m):
    i, j = map(int, input().split())
    
    sublist = num_list[i - 1:j]
    num_list[i - 1:j] = reversed(sublist)

# 각 요소를 문자열로 변환한 후 join 함수를 사용하여 공백으로 구분된 문자열로 만듭니다.
result_str = ' '.join(map(str, num_list))

result_str

챗 지피티 돌렸는데도 안 됨..

 

TypeError: 'str' object is not callable 이렇게 뜨는데 ㅜㅜ 으아앙앙아아ㅏㅇ

 

아 몰라 답지 볼게요

 

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

for _ in range(m):
    i, j = map(int, input().split())
    
    sublist = num_list[i - 1:j]
    num_list[i - 1:j] = reversed(sublist)

for i in range(n):
    print(num_list[i], end=' ')

 

이렇게 하니까 맞네요

 

막줄때문에 틀렸었나봐요

 

기억하자