컵 돌리기 게임
세 개의 뒤집힌 컵 중 한 개의 컵 안에 열쇠가 있습니다.
당신이 열쇠를 찾기 위해 컵을 들어올리려는 순간, Drogon이 빠르게 컵의 위치를 뒤섞기 시작합니다.
컵의 교환이 끝났을 때, 열쇠가 들어있는 컵을 찾아야 합니다.
예를들어, 열쇠가 들어있는 컵의 처음 위치가 0이고 컵이 교환되는 순서가 다음과 같다면 [(0, 1), (1, 2), (1, 0)]
swaps = [[0, 1], [1, 2], [1, 0]]
firstPosition = 0
findKey(firstPosition, swaps) == 2
컵의 갯수는 최소한 두 개 이상입니다.
/*
* @param {number} start
* @param {number[]} swaps
* @return {number}
*/
findKey (start, swaps){
//code
}
첫번째 인자는 열쇠의 위치이다.
두번째 인자로 들어온 배열안의 배열에서 열쇠의 위치를 찾고 -> 바뀐위치를 기억 -> 열쇠 추적 -> 바뀐 위치가 있을 시 기억 ->.. 두번째 인자가 끝날 때 까지 추적한다!
function findKey (start, swaps){
// Complete the findKey function.
let position = start;
const startIdx = 0;
const endIdx = 1;
swaps.forEach(cup => {
//첫번째 위치와 두번째위치에 이동한 숫자와 일치하는지 판별
if (cup[startIdx] === position) {
position = cup[endIdx];
} else if (cup[endIdx] === position) {
position = cup[startIdx];
}
});
return position;
}
테스트 통과
startIdx 와 endIdx 변수를 굳이 만들 필요 없다는 피드백을 받았습니다.
:white_check_mark: 하드코딩을 안하기 위해 변수를 담게 되었지만 0과 1이라는 분명한 값은 직접 입