728x90

Code

😢 말 그대로 브루트 포스
😊 어떠한 요행을 바라기보다는 그냥 브루프 포스다.
반복문 돌려서 모든 경우의 수를 다 계산한다.
카드 3개의 조합의 합을 구해야 하므로 3개의 중첩 for loop을 이용해 해결 가능하다.
5 6 7 8 9 카드들을 위의 중첩문으로 실행하면 다음과 같은 순서로 진행된다.
[0][1][2] 5 6 7 = 18
[0][1][3] 5 6 8 = 19
[0][1][4] 5 6 9 = 20
[0][2][3] 5 7 8 = 20
[0][2][4] 5 7 9 = 21
[0][3][4] 5 8 9 = 22
[1][2][3] 6 7 8 = 21
[1][2][4] 6 7 9 = 22
[1][3][4] 6 8 9 = 23
[2][3][4] 7 8 9 = 24
위의 합 중에 M보다 작거나 같은 것은 21
Full Code (https://github.com/DasolPark/Dasol_JS_Algorithm/tree/master/Baekjoon)
| // Blackjack |
| // For submit |
| // const fs = require('fs'); |
| // const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n'); |
| // For local test |
| const input = ['5 21', '5 6 7 8 9']; |
| const NM = input |
| .shift() |
| .split(' ') |
| .map(num => parseInt(num)); |
| const N = NM.shift(); |
| const M = NM.shift(); |
| const cardArr = input |
| .shift() |
| .split(' ') |
| .map(num => parseInt(num)); |
| let max = 0; |
| for (let i = 0; i < N - 2; i++) { |
| for (let j = i + 1; j < N - 1; j++) { |
| for (let k = j + 1; k < N; k++) { |
| let sum = cardArr[i] + cardArr[j] + cardArr[k]; |
| if (sum > max && sum <= M) { |
| max = sum; |
| } |
| } |
| } |
| } |
| console.log(max); |
'Algorithm > JavaScript(Node.js)' 카테고리의 다른 글
| 백준 1018번: 체스판 다시 칠하기 Node.js(JavaScript) (0) | 2020.02.13 |
|---|---|
| 백준 2231번: 분해합 Node.js(JavaScript) (0) | 2020.02.03 |
| 백준 2750번: 수 정렬하기 Node.js(JavaScript) (0) | 2020.01.29 |
| 백준 7568번: 덩치 Node.js(JavaScript) (0) | 2020.01.29 |
| 백준 1002번: 터렛 Node.js(JavaScript) (0) | 2020.01.28 |