문제 설명
가위는 2 바위는 0 보는 5로 표현합니다. 가위 바위 보를 내는 순서대로 나타낸 문자열 rsp가 매개변수로 주어질 때, rsp에 저장된 가위 바위 보를 모두 이기는 경우를 순서대로 나타낸 문자열을 return하도록 solution 함수를 완성해보세요.
제한사항
- 0 < rsp의 길이 ≤ 100
- rsp와 길이가 같은 문자열을 return 합니다.
- rsp는 숫자 0, 2, 5로 이루어져 있습니다.
입출력 예
| rsp | result |
| "2" | "0" |
| "205" | "052" |
나의 코드
function solution(rsp) {
let answer = "";
for (let i = 0; i < rsp.length; i++) {
if (rsp[i] === "2") {
answer += "0";
} else if (rsp[i] === "0") {
answer += "5";
} else if (rsp[i] === "5") {
answer += "2";
}
}
return answer;
}
방식
1. rsp는 문자열이므로 for문을 사용해 한 글자씩 순회한다.
2. 현재 문자가 "2", "0", "5" 중 무엇인지 if문으로 확인한다.
3. 각 경우에 이기는 값을 문자열 answer에 이어붙인다.
4. 반복이 끝나면 완성된 answer 문자열을 반환한다.
다른 사람의 코드
function solution(rsp) {
let arr = {
2: 0,
0: 5,
5: 2
};
var answer = [...rsp].map(v => arr[v]).join("");
return answer;
}
나의 코드와 차이점
1. 객체에 규칙을 저장해두고 조건문 없이 값을 조회
2. 전개연산자를 사용해 문자열을 배열로 만든 후 map()으로 순회
느낀점
객체를 활용해 변환 규칙을 미리 저장하고 필요한 값을 바로 조회하는 방법을 잘 응용해야겠다는 생각이 들었따. 앞으로는 문제를 풀 때 단순히 조건문만 생각하기보다 객체를 활용하여 규칙을 관리할 수 있는지 함께 고민해봐야겠다고 느꼈다.
'코딩테스트' 카테고리의 다른 글
| [프로그래머스] 배열 회전시키기 (0) | 2026.06.04 |
|---|---|
| [프로그래머스] 공 던지기 (0) | 2026.06.04 |
| [프로그래머스] 진료순서 정하기 (0) | 2026.05.27 |
| [프로그래머스] 외계행성의 나이 (0) | 2026.05.26 |
| [프로그래머스] 짝수의 합 (0) | 2026.05.05 |