[알고리즘] 2차원 탐색 - 가위바위보
가위바위보
A, B 두 사람이 가위바위보 게임을 합니다. 총 N번의 게임을 하여 A가 이기면 A를 출력하고, B가 이기면 B를 출력합니다. 비길 경우에는 D를 출력합니다. 가위, 바위, 보의 정보는 1:가위, 2:바위, 3:보로 정하겠습니다.
두 사람의 각 회의 가위, 바위, 보 정보가 주어지면 각 회를 누가 이겼는지 출력하는 프로그램을 작성하세요.
▣ 입력설명
첫 번째 줄에 게임 횟수인 자연수 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
내 풀이
function solution(a, b) {
let answer = "";
let scissor = 1,
rock = 2,
paper = 3;
for (i = 0; i < a.length; i++) {
if (
(a[i] === scissor && b[i] === paper) ||
(a[i] === rock && b[i] === scissor) ||
(a[i] === paper && b[i] === rock)
) {
answer += "A";
} else if (a[i] === b[i]) {
answer += "D";
} else answer += "B";
}
return answer;
}
경우의 수를 잘 나누면 쉽게 풀 수 있다.
강사님 풀이
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;
}
Author And Source
이 문제에 관하여([알고리즘] 2차원 탐색 - 가위바위보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@shinwonse/알고리즘-2차원-탐색-가위바위보저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)