문제1
사다리 게임은 먼저 사람 수만큼 세로줄을 긋고 한쪽 편에는 이름을 쓰고 반대쪽에는 상품 위치를 씁니다. 서로 인접한 세로줄 사이에 가로줄을 무작위로 그은 다음 세로줄을 타고 내려가면서 가로줄을 만날 때마다 가로줄로 연결된 다른 세로줄로 가는 게임입니다.
6명이 사다리 게임을 할 때, 몇 번째 위치에서 시작하는 사람이 상품을 타는지 알고 싶습니다. 가로줄은 항상 인접한 세로줄만 연결할 수 있으며 주어진 순서대로 위에서부터 연결합니다.
예를 들어, 아래 사다리의 가로줄은 [[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 |
Python
def solution(ladders, win):
ladders.reverse()
for ladder in ladders:
if ladder[0] == win: #왼쪽과 같으면
win = ladder[1] #오른쪽으로 이동
elif ladder[1] == win: #오른쪽과 같으면
win = ladder[0] #왼쪽으로 이동
return win
print(solution([[1,2],[3,4],[2,3],[4,5],[5,6]], 3))
'Algorithm Problems' 카테고리의 다른 글
[Cos Pro 2급] 5차 10번 - 교대 근무 일등 (0) | 2021.02.07 |
---|---|
[Cos Pro 2급] 5차 9번 - 학생별 석차 출력 (0) | 2021.02.06 |
에라토스테네스의 체 - pygame으로 설명 (0) | 2021.02.04 |
[Cos Pro 1급] 3차 3번 - 비숍 (0) | 2021.02.02 |
[Cos Pro 1급] 1차 5번 - 소용돌이 수의 대각선의 합 (0) | 2021.02.02 |