본문 바로가기

코딩테스트

[백준] 10811번: 바구니 뒤집기 (브론즈2, Python)

728x90
반응형

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

 

10811번: 바구니 뒤집기

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

www.acmicpc.net

 

문제 해결 아이디어

1. 주어진 범위를 리스트 표현에 맞게 지정해야함.

2. 범위 내 값을 뒤집을 방법! (reverse 메서드 사용)

3. 뒤집은 값을 다시 리스트에 갱신

 

위 세가지 사항을 고려하여 소스코드를 작성함.

 

1. 뒤집을 범위의 배열을 tmp_arr로 명명하고,

2. 이를 reverse 메서드를 사용하여 역순으로 뒤집은 후

3. 추출한 범위에 다시 입력

 

 

소스코드 (Python)

def chg_ball(n, m):
    arr = list(range(1,n+1)) # 1부터 n까지 생성
    
    for _ in range(1,m+1):
        i,j = [int(k)-1 for k in input().split()]
        if i == j: pass
        else:
            tmp_arr = arr[i:j+1]
            tmp_arr.reverse()
            arr[i:j+1] = tmp_arr
    
    return arr

if __name__ == '__main__':
    n,m = [int(k) for k in input().split()] # map 함수를 사용하여 변수를 받을 수 도 있음.
    print(*chg_ball(n,m))

 

결과

굿굿

반응형