-어떻게?
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)