※ 문제
A, B 두 사람이 가위바위보 게임을 합니다. 총 N번의 게임을 하여 A가 이기면 A를 출력하고, B가 이기면 B를 출력합니다. 비길 경우에는 D를 출력합니다.
가위, 바위, 보의 정보는 1:가위, 2:바위, 3:보로 정하겠습니다.
예를 들어 N=5이면
회수 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
A의 정보 | 2 | 3 | 3 | 1 | 3 |
B의 정보 | 1 | 1 | 2 | 2 | 3 |
승자 | A | B | A | B | D |
두 사람의 각 회의 가위, 바위, 보 정보가 주어지면 각 회를 누가 이겼는지 출력하는 프로그램을 작성하세요.
▣ 입력설명
첫 번째 줄에 게임 횟수인 자연수 N(1<=N<=100)이 주어집니다.
두 번째 줄에는 A가 낸 가위, 바위, 보 정보가 N개 주어집니다.
세 번째 줄에는 B가 낸 가위, 바위, 보 정보가 N개 주어집니다.
▣ 출력설명
각 줄에 각 회의 승자를 출력합니다. 비겼을 경우는 D를 출력합니다.
▣ 입력예제 1
5
2 3 3 1 3
1 1 2 2 3
▣ 출력예제 1
A
B
A
B
D
※ 코드
<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>
※ 설명
- a와 b가 같을 경우(비겼을 경우)
- a가 1일 경우(가위)
승: b = 3
패: b = 2 - a가 2일 경우(바위)
승: b = 1
패: b = 3 - a가 3일 경우(보)
승: b = 2
패: b = 1
위와 같이 4가지의 경우를 for문을 통해 배열의 값들을 하나씩 비교하도록 한다.
해당 내용은 김태원님의 자바스크립트 알고리즘 문제풀이 강의를 듣고 작성한 글입니다.
'🤯 코딩테스트 > Javscript' 카테고리의 다른 글
[자바스크립트 알고리즘 문제풀이(코딩테스트 대비)] Section 02 - 등수구하기 (0) | 2022.01.10 |
---|---|
[자바스크립트 알고리즘 문제풀이(코딩테스트 대비)] Section 02 - 점수계산 (0) | 2022.01.10 |
[자바스크립트 알고리즘 문제풀이(코딩테스트 대비)] Section 02 - 보이는 학생 (0) | 2022.01.10 |
[자바스크립트 알고리즘 문제풀이(코딩테스트 대비)] Section 02 - 큰 수 출력하기 (0) | 2022.01.10 |
[자바스크립트 알고리즘 문제풀이(코딩테스트 대비)] Section 01 - 중복 단어 제거 (0) | 2022.01.10 |