2-3) 가위 바위 보
문제
A, B 두 사람이 가위바위보 게임을 합니다. 총 N번의 게임을 하여 A가 이기면 A를 출력하고, B가 이기면 B를 출력합니다. 비길 경우에는 D를 출력합니다.
가위, 바위, 보의 정보는 1:가위, 2:바위, 3:보로 정하겠습니다.
예를 들어 N=5이면
두 사람의 각 회의 가위, 바위, 보 정보가 주어지면 각 회를 누가 이겼는지 출력하는 프로그램 을 작성하세요.
[입력설명]
첫 번째 줄에 게임 횟수인 자연수 N(1<=N<=100)이 주어집니다. 두 번째 줄에는 A가 낸 가위, 바위, 보 정보가 N개 주어집니다. 세 번째 줄에는 B가 낸 가위, 바위, 보 정보가 N개 주어집니다.
[출력설명]
각 줄에 각 회의 승자를 출력합니다. 비겼을 경우는 D를 출력합니다.
입력예제 1
5
23313
11223
출력예제 1
A
B
A
B
D
문제 풀이
예습 이론
- String으로 리턴해야 할 경우,
let answer=""
와 같이 초기화한다. if~ else if~ else~
조건문을 작성할 때에는, else에 긴 조건의 코드가 들어갈 수 있도록 하면 if~ else if~의 코드를 최대한 줄일 수 있다.(else는 앞의 조건을 만족하지 않는 것 모두 해당하기 때문에, 조건을 따로 적지 않아도 된다.) 만약, else에 짧은 코드를 넣으면 if~ else if~ 에서 많은 코드를 작성해야한다.
코드
1차원 탐색을 사용한다. for문 한번만으로도 문제를 해결할 수 있다.
<html>
<head>
<meta charset="UTF-8">
<title>출력결과</title>
</head>
<body>
<script>
function solution(a, b){
let answer=""; //string으로 리턴
for(let i=0; i<a.length; i++){
if(a[i] === b[i]) answer+='D\n'; //비기는 경우
else if(a[i]===1 && b[i]===3) answer+='A\n'; //A가 이기는 경우
else if(a[i]===2 && b[i]===1) answer+='A\n';
else if(a[i]===3 && b[i]===2) answer+='A\n';
else answer+='B\n'; //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
B
D
Author And Source
이 문제에 관하여(2-3) 가위 바위 보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@rladpwl0512/2-3-가위-바위-보저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)