
정답 1
상기 문제를 보고서 필자는 switch 문이 바로 떠올랐다. 그래서 다른 고민 없이 바로 switch 문을 적용해 해당 문제를 해결하기로 했다.
function solution(rsp) {
return rsp.split("").map(d => {
switch(d) {
case "0" :
return "5"
case "2" :
return "0"
case "5" :
return "2"
default :
return null;
}
}).join("");
}
결과는 정답이였다. 하지만 딱 보기에도 뭔가 코드가 너무 길다. 그리고 우아한 면이 상당히 없다. 다른 우아한 방식은 어떤것이 있는지 한번 둘러보았다.
정답 2
와 상당히 우아하면서도 이 문제에 최적화된 정답을 보았다.
function solution(rsp) {
let arr = {
2: 0,
0: 5,
5: 2
};
var answer = [...rsp].map(v => arr[v]).join("");
return answer;
}
바로 객체를 사용하는 것이다.
객체의 키 : 값으로 가위 바위 보의 상성을 정리해놓고 키로 값을 찾아서 배열을 만들고 join 하여 정답을 도출했다. 객체를 활용한 상당히 창의적인 접근이였다.
'프로그래머스 - 코딩테스트' 카테고리의 다른 글
[JavaScript][프로그래머스] - LVL.0 주사위의 개수 (0) | 2023.04.10 |
---|---|
[JavaScript][프로그래머스] - LVL.0 주사위의 개수 (0) | 2023.03.12 |
[JavaScript][프로그래머스] - LVL.0 개미군단 (0) | 2023.02.11 |
[Java][프로그래머스] - LVL.0 모음 제거 (0) | 2023.02.03 |
[Java][프로그래머스] - LVL.0 숨어있는 숫자의 덧셈(1) (0) | 2023.02.02 |