일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 인터섹션
- 호이스팅
- recoil
- 공변성
- CORS
- useAppDispatch
- 태그된 유니온
- TS
- autosize
- ESlint
- app router
- 리터럴 타입
- 반공변성
- 이분 검색
- 무한 스크롤
- 투포인터
- webpack
- dfs
- SSR
- CI/CD
- map
- RTK Query
- Jest
- React
- async/await
- 결정 알고리즘
- tailwind
- Promise
- Cypress
- 타입 좁히기
Archives
- Today
- Total
짧은코딩
가위 바위 보 본문
반응형
해결법
사실 해결법은 간단하다. 하지만 난 일일히 비교해서 풀었다. 강사님 풀이에서는 A가 이기는 기준을 다 나열하고 아닌 경우 B 가 이긴 경우로 했다.
내 풀이
<html>
<head>
<meta charset="UTF-8" />
<title>출력결과</title>
</head>
<body>
<script>
function solution(a, b) {
let answer = "";
function result(x, y) {
if (x === y) {
answer += "D";
} else if (x === 1) {
if (y === 2) answer += "B";
else answer += "A";
} else if (x === 2) {
if (y === 1) answer += "A";
else answer += "B";
} else if (x === 3) {
if (y === 1) answer += "B";
else answer += "A";
}
}
for (let i = 0; i < a.length; i++) {
result(a[i], b[i]);
}
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>
우선 비기는 경우와 A가 이기는 경우를 두고 else로 B가 이기는 경우를 했다.
반응형
'코딩테스트 with JS > 자바스크립트 알고리즘 문제풀이(인프런)' 카테고리의 다른 글
회문 문자열 (0) | 2022.08.13 |
---|---|
등수구하기 (0) | 2022.08.12 |
중복 문자 제거, indexOf (0) | 2022.08.10 |
substr(), substring(), slice() (0) | 2022.08.10 |
대문자 찾기 (0) | 2022.08.07 |
Comments