반응형
문제설명
6명이 사다리 게임[^1] 을 할 때, 몇 번째 위치에서 시작하는 사람이 상품을 타는지 알고 싶습니다. 가로줄은 항상 인접한 세로줄만 연결할 수 있으며 주어진 순서대로 위에서부터 연결합니다.
예를 들어, 아래 사다리의 가로줄은 [[1, 2], [3, 4], [2, 3], [4, 5], [5, 6]] 으로 표현합니다. 이때 1번째 위치에서 시작한 사람이 상품을 탑니다.
가로줄의 위치가 담긴 2차원 리스트 ladders와 상품의 위치 win이 매개변수로 주어질 때, 당첨자의 시작 위치를 return 하도록 solution 함수를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요.
매개변수 설명
가로줄의 위치가 담긴 2차원 리스트 ladders와 상품이 있는 위치 win이 solution 함수의 매개변수로 주어집니다.
* 가로줄의 개수는 1 이상 20 이하인 자연수입니다.
* win은 1 이상 6 이하인 자연수입니다.
* 가로줄은 항상 연결할 수 있는 형태만 주어집니다.
return 값 설명
승리하는 사람의 시작 위치를 return 합니다.
예시
| ladders | win | return |
|------------------------------------------|-----|--------|
| [[1, 2], [3, 4], [2, 3], [4, 5], [5, 6]] | 3 | 1 |
문제 코드
def solution(ladders, win):
answer = 0
player = [1, 2, 3, 4, 5, 6]
for e in ladders:
temp = player[e[0]-1]
@@@ = @@@
@@@ = temp
answer = player[win-1]
return answer
풀이
def solution(ladders, win):
answer = 0
player = [1, 2, 3, 4, 5, 6]
# 가로줄로 연결된 세로줄의 player들은 위치가 서로 변경
for e in ladders:
temp = player[e[0]-1]
# 가로줄로 연결된 왼쪽 세로선에는 오른쪽 세로선의 player가 위치
player[e[0]-1] = player[e[1]-1]
# 가로줄로 연결된 오른쪽 세로선에는 왼쪽 세로선의 player가 위치
player[e[1]-1] = temp
answer = player[win-1]
return answer
댓글