[백준 문제풀이] 2798 블랙잭 (Javascript, python)

방예서·2022년 5월 18일
0

코딩테스트 준비

목록 보기
5/37

블랙잭

brute-force 문제이다.

  • python
# 백준 2798 블랙잭 python

import sys
input = sys.stdin.readline


n, m = map(int, input().split())
cards = list(map(int, input().split()))

temp = 0
result = 0

for i in range(n):
    for j in range(i+1, n):
        for k in range(j+1, n):
            temp = cards[i] + cards[j] + cards[k]
            if (temp <= m and temp > result):
                result = temp

print(result)

temp 는 for문을 돌며 받은 카드 3장의 합,
result 는 결과 값.

cards 배열을 모두 돌며 3개의 합(temp)을 구하고, 그것이 딜러가 부른 값 m 보다 작거나 같으면 결과에 저장한다.
그 전에 계산한 값(result)와도 비교하여 지금 구한 temp가 이전에 구해둔 result보다 크면 그 때 result에 다시 저장하도록 한다.


  • JS
// 2798 js

const fs = require('fs');
const input = fs.readFileSync("input.txt").toString().trim().split("\n");

const nm = input[0].split(' ');
let cards = input[1].split(' ');
cards = cards.map(x => parseInt(x));

const n = nm[0];
const m = nm[1];

let temp = 0;
let result = 0;

for(let i=0; i < n; i++){
  for(let j=i+1; j < n; j++) {
    for(let k=j+1; k < n; k++) {
      temp =  cards[i] + cards[j] + cards[k];
      if (temp <= m && temp > result) {
          result = temp
      }
    }
  }
}

console.log(result);

구현이 단순한 문제였어서 파이썬과 크게 다르지 않는다.

다만 앞서 주사위 세개를 자바스크립트로 풀면서 parseInt() 를 모든 배열에 적용해주는 부분을 추가했다.

profile
console.log('bang log');

0개의 댓글