일기/TIL
TIL: Today I Learned 55일차 [ 가위바위보 ]
표자
2023. 1. 31. 18:18
728x90
반응형
1. 문제점
프로그래머스 알고리즘 문제풀이 - 자바스크립트 [ 가위바위보 ]
2. 시도해본 것들
처음 봤을땐 막막했다. 문제 풀때마다 왜 이러지ㅋㅋㅋ
일단 모두 이기는 경우니까 경우의 수는 3개
그럼 for문 안에서 if문으로 걸러내야 겠다고 생각했다.
3. 해결과정
일단 문제를 글로 쓰면서 이해했다.
// 가위는 2, 바위는 0, 보는 5 손가락 갯수
// 가위는 2 > 보 5
// 바위는 0 > 가위 2
// 보는 5 > 바위 0
좀 알아보긴 어렵지만 이렇게 써서 문제를 이해하고 코드로 구현해봤다.
4. 알게 된 점
나의 문제풀이
function solution(rsp) {
var answer = '';
// 가위는 2, 바위는 0, 보는 5 손가락 갯수
// 가위는 2 > 보 5
// 바위는 0 > 가위 2
// 보는 5 > 바위 0
for(i=0; i<rsp.length; i++){
if(rsp[i] == "5"){
answer += 2;
} else if (rsp[i] == "0"){
answer += 5;
} else {
answer += 0;
}
}
return answer;
}
타입스크립트면 어림도 없겠지만,
문자열도 배열처럼 사용할 수 있다는걸 이전에 배워서
타입변환없이 answer에 더했더니 정답이었다.
남의 문제풀이
/*
가위는 2 바위는 0 보는 5
*/
function solution(rsp) {
let arr = {
2: 0,
0: 5,
5: 2
};
var answer = [...rsp].map(v => arr[v]).join("");
return answer;
}
객체로 만들어서 map을 이용한 풀이법
깔끔하고 이해하기 쉽다. for문으로 모든걸 풀고 있지만
for문 없이 이런식으로 풀고 싶다ㅠㅠㅠ
이걸 봤으니 한번 머리에 외워두고 당장 코드로 적어봐야겠다.
728x90
반응형