📌강의 정리
가위바위보 정보가 숫자로 들어온다.
a배열 b배열로 받았다.
두 배열의 길이는 같기에 a.length를 써서 포문돌리면 다 돈다.
승부결과는 a입장에서만 보면 이길 수 있는 경우는 3가지이다.
1,2,3으로 이기는 경우이다.
a가 1을 내면 && b가 3을 내야한다.
마찬가지로 2,3을 간다.
그리고 else는 b가 이기는 경우
앞서 같은경우는 비기는 경우로 한다.
📌느낀점
나는 a가 이기는 경우와 b가 이기는 경우를 코딩하고 else로 비기는경우를 했는데
그러지말고 비기는경우 a가 이기는 경우하고 b가 이기는 거는 else로 하는게 더 유리한것같다.
그리고 이렇게 해서 코드를 절약하면 하드코딩으로 1,2,3 다 한줄씩 지정해준다.
나의 방식이던 둘을 뻈을때 1 && 3,1은 의미가 확장되면 안될것같으니 강사님 방법이 더 좋은 것 같다.
항상 코드에서 의미를 읽을 수 있게 하자.
//나의 코드
<html>
<head>
<meta charset="UTF-8">
<title>출력결과</title>
</head>
<body>
<script>
function solution(a, b){
let answer="";
for(let i=0; i<a.length; i++){
if(a[i]-b[i] === 1 || (a[i] === 1 && b[i] === 3)) answer+='A';
else if((b[i]-a[i] === 1 || (b[i] === 1 && a[i] === 3))) answer+='B';
else answer+='D';
}
return answer;
}
let a=[2, 3, 3, 1, 3];
let b=[1, 1, 2, 2, 3];
console.log(solution(a, b));
</script>
</body>
</html>
//강사님 코드
<html>
<head>
<meta charset="UTF-8">
<title>출력결과</title>
</head>
<body>
<script>
function solution(a, b){
let answer="";
for(let i=0; i<a.length; i++){
if(a[i]===b[i]) answer+="D ";
else if(a[i]===1 && b[i]===3) answer+="A ";
else if(a[i]===2 && b[i]===1) answer+="A ";
else if(a[i]===3 && b[i]===2) answer+="A ";
else answer+="B ";
}
return answer;
}
let a=[2, 3, 3, 1, 3];
let b=[1, 1, 2, 2, 3];
console.log(solution(a, b));
</script>
</body>
</html>
'JS 알고리즘 문제풀이 > 섹션 2. 1, 2차원 배열 탐색' 카테고리의 다른 글
6.격자판 최대합 (0) | 2022.01.13 |
---|---|
5.등수구하기 (0) | 2022.01.12 |
4.점수계산 (0) | 2022.01.12 |
2.보이는 학생 (0) | 2022.01.12 |
1.큰 수 출력하기 (0) | 2022.01.12 |