A가 이기면 A를 출력, B가 이기면 B를 출력, 비기면 D를 출력
1: 가위, 2: 바위, 3: 보
나의 풀이
function solution(a, b) {
let answer = "";
for (let i = 0; i < a.length; i++) {
if (
(a[i] === 1 && b[i] === 3) ||
(a[i] === 2 && b[i] === 1) ||
(a[i] === 3 && b[i] === 2)
) {
answer += "A";
} else if (
(a[i] === 3 && b[i] === 1) ||
(a[i] === 1 && b[i] === 2) ||
(a[i] === 2 && b[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));
강사 풀이
function solution2(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(solution2(a, b));
나의 풀이와 강사풀이는 어떻게 보면 같지만, 강사는 기준점을 다르게 잡아서 코드가 짧아졌다.
기준점을 어떻게 잡느냐에 따라 달라진다.
'코딩테스트 문제풀이 > inflearn' 카테고리의 다른 글
[인프런] Node.js / 섹션2 - 1, 2차원 탐색 / 5. 등수구하기 (0) | 2023.01.08 |
---|---|
[인프런] Node.js / 섹션2 - 1, 2차원 탐색 / 4. 점수계산 (0) | 2023.01.08 |
[인프런] Node.js / 섹션2 - 1, 2차원 배열 탐색 / 2. 보이는 학생 (0) | 2023.01.05 |
[인프런] Node.js / 섹션2 - 1, 2차원 배열 탐색 / 1. 큰 수 출력하기 (0) | 2023.01.05 |
[인프런] Node.js / 섹션1 - 기본문제 풀이 / 17. 중복 단어 제거 (0) | 2023.01.04 |