[04. ‘1차원 배열’] 바구니

곤경에 가라!

-어떻게?

1~N~N ​​바구니에 번호를 지정하고,

주어진 범위 내에서 바스켓의 순서를 M번 변경하기만 하면 됩니다(번호가 아닌 위치만)!

위의 과정 중 두 번째 과정이 조금 어려울 수 있습니다.

순서를 반대로 하여 다시 조립하여 문제를 해결해 봅시다!

+팁: 슬라이스해 보세요!

-새로운!

람다로 간단하게 기능을 사용할 수 있습니다!

람다 매개변수 : 표현

# 익히 알고있는 함수 만드는 법과 비교해보면 
def example(x,y):
	return x + y

example(1, 2)
>>> 3

# lambda를 사용하면 더 간단하게 함수를 지정할 수 있다!
(lambda x,y : x+y)(1,2) >>> 3 # 함수명을 지정하고 싶다면 변수명을 새로 지정해주자 example = lambda x,y : x+y ex(1,2) >>> 3


답변 및 설명 보기!

더보기

# 풀이
N,M = map(int,input().split())
bucket = (*range(1,N+1))

for _ in range(M):
    i,j = map(int,input().split())
    front, change, back = bucket(:i-1), bucket(i-1:j), bucket(j:)
    change.reverse()
    bucket = front + change + back
    
print(' '.join(map(str,bucket)))



# lambda 사용 ver.
f = lambda : map(int,input().split())
N,M = f()
bucket = (*range(1,N+1))

for _ in range(M):
    i,j = f()
    front, change, back = bucket(:i-1), bucket(i-1:j), bucket(j:)
    change.reverse()
    bucket = front + change + back
    
print(' '.join(map(str,bucket)))



# lambda 사용 + (::-1) 사용 ver.   << 런타임 오류 발생!
f = lambda : map(int,input().split()) N,M = f() bucket = (*range(1,n+1)) for _ in range(m): i,j =f() bucket(i-1:j) = bucket(i-1:j)(::-1) # 모든 구간((::))에 대해 역방향((::-1))으로 나열 print(*bucket)

3차 버전 원본 링크