Jayden1116 2022. 6. 7. 23:39
const fs = require('fs');
const path = process.platform === 'linux' ? '/dev/stdin' : './data.txt';

const input = fs.readFileSync(path).toString().trim().split('\n');

function solve(input) {
  const [N, M] = input[0].split(' ').map((x) => parseInt(x));
  const cardNums = input[1].split(' ').map((x) => parseInt(x));
  const answer = new Array();

  for (let i of cardNums) {
    for (let j of cardNums) {
      for (let k of cardNums) {
        if (i + j + k <= M && i !== j && j !== k && k !== i) {
          answer.push(i + j + k);
        }
      }
    }
  }
  return Math.max(...answer);
}

console.log(solve(input));

 

λ°±μ€€

 

2798번: λΈ”λž™μž­

첫째 쀄에 μΉ΄λ“œμ˜ 개수 N(3 ≤ N ≤ 100)κ³Ό M(10 ≤ M ≤ 300,000)이 μ£Όμ–΄μ§„λ‹€. λ‘˜μ§Έ μ€„μ—λŠ” μΉ΄λ“œμ— μ“°μ—¬ μžˆλŠ” μˆ˜κ°€ μ£Όμ–΄μ§€λ©°, 이 값은 100,000을 λ„˜μ§€ μ•ŠλŠ” μ–‘μ˜ μ •μˆ˜μ΄λ‹€. 합이 M을 λ„˜μ§€ μ•ŠλŠ” μΉ΄λ“œ 3μž₯

www.acmicpc.net

 

ν™•μ‹€νžˆ 브루트포슀(완전탐색) 문제의 κ²½μš°μ—” μ‹œκ°„μ œν•œμ΄ λ„‰λ„‰ν•΄μ„œ ν’€κΈ° μ’‹λ‹€.
μ œμ•ˆλœ 숫자 보닀 μž‘κ±°λ‚˜ 같은 값듀을 배열에 λ„£μ–΄μ£Όκ³  κ·Έ κ°’λ“€ 쀑 κ°€μž₯ 큰 κ°’ 리턴
이 λ•Œ μ£Όμ˜ν•  점은, 뽑은 3κ°€μ§€μ˜ μˆ«μžκ°€ 쀑볡될 수 μ—†λ‹€λŠ” 것!