[COS PRO 2급-Python] 사다리 게임의 승리자를 구해주세요!

Sunhee·2023년 6월 30일

COS PRO - Python 2급

목록 보기
41/44

[COS PRO 2급-Python] 사다리 게임의 승리자를 구해주세요!

문제 설명

6명이 사다리 게임을 할 때, 몇 번째 위치에서 시작하는 사람이 상품을 타는지 알고 싶습니다.
가로줄은 항상 인접한 세로줄만 연결할 수 있으며 주어진 순서대로 위에서부터 연결합니다.
예를 들어, 아래 사다리의 가로줄은[[1,2],[3,4],[2,3],[4,5],[5,6]]으로 표현합니다. 이때 1번째 위치에서 시작한 사람이 상품을 탑니다.

가로줄의 위치가 담긴 2차원 배열 ladders, 배열 ladders의 길이 ladders_len, 상품의 위치 win이 매개변수로 주어질 때, 당첨자의 시작 위치를 return 하도록 solution 함수를 작성하려합니다. 빈칸을 채워 전체 코드를 완성해주세요.


### 매개변수 설명 가로줄의 위치가 담긴 2차원 배열 ladders와 상품이 있는 위치 win이 solution 함수의 매개변수로 주어집니다.
  • ladders_len은 1 이상 20 이하인 자연수입니다.
  • win은 1 이상 6 이하인 자연수입니다.
  • 가로줄은 항상 연결할 수 있는 형태만 주어집니다.



return 값 설명

승리하는 사람의 시작 위치를 return 합니다.

예시


알고리즘 구상

▶ answer와 player 변수를 초기화합니다. answer는 이긴 사람의 위치를 저장할 변수이고, player는 초기 사람들의 위치를 나타내는 리스트입니다.

▶ ladders 리스트를 순회하면서 각 사다리 정보를 가져옵니다. 각 사다리 정보는 e 변수에 저장됩니다.

▶ 사다리의 시작 위치(e[0])와 도착 위치(e[1])를 이용하여 player 리스트에서 해당 위치에 있는 사람을 교환합니다. 즉, player[e[0]-1]과 player[e[1]-1]의 값을 서로 교환합니다. (리스트 인덱스는 0부터 시작하므로 -1을 해줍니다.)

▶ 모든 사다리 정보를 처리한 후, player[win-1]의 값을 answer에 저장합니다. 이는 이긴 사람의 위치를 나타냅니다. (위치는 1부터 시작하므로 -1을 해줍니다.)

▶ answer 값을 반환합니다.


내가 쓴 코드!

def solution(ladders, win):
	answer = 0
	player = [1, 2, 3, 4, 5, 6]
	for e in ladders:
		temp = player[e[0]-1]
		player[e[0]-1] = player[e[1]-1]
		player[e[1]-1] = temp
	answer = player[win-1]
	return answer

0개의 댓글