블랙잭 - javascript

DonQ·2022년 5월 16일
0

CodingTest

목록 보기
32/33
post-thumbnail

문제 (출처)

https://www.acmicpc.net/problem/2798

나의 접근

  • 카드들을 배열내에 넣고 for문을 뽑는 숫자의 수만큼 돌려 그 합을 배열에 담고 가장 큰 숫자를 뽑는 방식으로 진행 하였다.

  • 지금 쓰면서 생각해보니 ... 블랙잭인 숫자가 나온다면 바로 리턴해버리면 좀더 빠르게 해결할 수 있겠다는 생각도 든다.

풀이

const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let input = fs.readFileSync(filePath).toString().split('\n');

let cardCnt = +input[0].split(' ')[0];
let win = +input[0].split(' ')[1];
let card = input[1].split(' ').map((val) => +val)
let resultArr = [];


for(let i = 0; i < cardCnt; i++){
    for(let j = i + 1; j < cardCnt; j++){
        for(let k = j + 1; k < cardCnt; k++){
            let sum = card[i] + card[j] + card[k];
            if(sum <= win){
                resultArr.push(sum)
            }
        }
    }
}

console.log(Math.max(...resultArr));

오늘의 배운점 및 교훈

  • 사실 오랜만에 코테 블로그를 올리는 이유는 재귀 문제에서 막혔기 때문이다... 풀이를 봐도 잘 이해가 안가서 ... 나도 모르게 손을 놓아버렸다. 바로 전 게시물에 평이하다고 적었는데... 바로 막혔다!!!!!! 이런 설레발!!

  • 이 문제와는 상관 없지만.. 좀 더 성장해서 다시 돌아가서 풀어야겠다!! 여튼 굳이 다 배열내에 넣지 않고 win과 같은 숫자가 나오면 바로 리턴해버리는 그런 방법으로 다음에는 풀어야겠다!!

profile
꾸준히 쌓아가는 코딩 Study

0개의 댓글

관련 채용 정보