Algorithm/๋ฐฑ์ค€(BOJ)

[Node.js/JavaScript] ๋ฐฑ์ค€ 1157๋ฒˆ ๋‹จ์–ด ๊ฐœ์ˆ˜

_์„ฑํ˜ธ_ 2022. 7. 5. 18:48
728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

์•ŒํŒŒ๋ฒณ ๋Œ€์†Œ๋ฌธ์ž๋กœ ๋œ ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์ง€๋ฉด, ์ด ๋‹จ์–ด์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋œ ์•ŒํŒŒ๋ฒณ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋‹จ, ๋Œ€๋ฌธ์ž์™€ ์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

ํ’€์ด

const input = require('fs').readFileSync('์˜ˆ์ œ.txt').toString().trim().toUpperCase();

// 26์˜ ๊ธธ์ด๋ฅผ ๊ฐ€์ง„ ๋นˆ ๋ฐฐ์—ด์— 0์„ ์ฑ„์›Œ์„œ ๋ฐฐ์—ด ๊ฐ์ฒด ์ƒ์„ฑ
const arr = new Array(26).fill(0);

// ๋ฌธ์ž A์˜ ์ธ๋ฑ์Šค = 0 (UTF-16 ์ฝ”๋“œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ - 65)
for (let i = 0; i < input.length; i++) {
  arr[input.charCodeAt(i) - 65]++;
}

// ๋ฐฐ์—ด ์•ˆ์—์„œ ์ตœ๋Œ“๊ฐ’ ์ฐพ๊ธฐ
const max = Math.max(...arr);
const maxIndex = arr.indexOf(max);
let maxNum = 0;

// ๋ฐฐ์—ด์— ๋“ค์–ด์žˆ๋Š” ์š”์†Œ์™€ ์ตœ๋Œ“๊ฐ’์ด ๋™์ผํ•  ๊ฒฝ์šฐ 1 ์ฆ๊ฐ€
arr.map((item) => {
  if (item === max) {
    maxNum++;
  }
});

maxNum > 1 ? console.log('?') : console.log(String.fromCharCode(maxIndex + 65));

 

ํ’€๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ ๊ฐœ๋…!

charCodeAt() ๋ฉ”์„œ๋“œ๋Š” ์ฃผ์–ด์ง„ ์ธ๋ฑ์Šค์— ๋Œ€ํ•œ UTF-16 ์ฝ”๋“œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” 0๋ถ€ํ„ฐ 65535 ์‚ฌ์ด์˜ ์ •์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ

const sentence = 'The quick brown fox jumps over the lazy dog.';

const index = 4;

console.log(`The character code ${sentence.charCodeAt(index)} is equal to ${sentence.charAt(index)}`);
// expected output: "The character code 113 is equal to q"

 

์ฐธ๊ณ 

2022.07.03 - [Algorithm] - [Node.js/JAVASCRIPT] ๋ฐฑ์ค€ 10809๋ฒˆ ์•ŒํŒŒ๋ฒณ ์ฐพ๊ธฐ