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 |