๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

ํ”„์—” ๊ณต๋ถ€/๐Ÿซง ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€

[๋ฐฑ์ค€/Node.js] 10807๋ฒˆ ํ’€์ด || JavaScript

728x90
let input = require('fs').readFileSync('/dev/stdin').toString().trim().split("\n");

const length = input[0];
const array = input[1].split(" ").map(i => Number(i));
const countValue = Number(input[2]);

const isCollect = (num) => {
    if (num === countValue) { return true };
}

const result = array.filter(isCollect);

console.log(result.length);

๐Ÿก ๋ฐฐ์—ด์˜ ํŠน์ •ํ•œ ๊ฐ’์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด๋Š” ๋ฌธ์ œ

์‚ฌ์‹ค ์•„์˜ˆ ๋ชฐ๋ผ์„œ ๊ฒ€์ƒ‰ ๋จผ์ € ํ•ด๋ดค๋‹ค.

๋ฐฐ์—ด์˜ ํŠน์ • ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” method ๋Š” ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

(*method๋Š” ๊ฐ์ฒด์˜ ์†์„ฑ์ธ ํ•จ์ˆ˜)

find() ์™€ filter()

 

๐Ÿก find()

ํŠน์ • ์กฐ๊ฑด์„ callback ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ,

์กฐ๊ฑด์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์ด ์žˆ์„ ๊ฒฝ์šฐ -> ๋ฐฐ์—ด์—์„œ ์ฒซ๋ฒˆ์งธ๋กœ ์ผ์น˜ํ•˜๋Š” ๊ฐ’์„ ๋ฆฌํ„ดํ•œ๋‹ค.

์กฐ๊ฑด์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์ด ์—†์„ ๊ฒฝ์šฐ -> undefined ๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.

 

๐Ÿก filter()

find() ์™€๋Š” ๋‹ฌ๋ฆฌ ํŠน์ • ์กฐ๊ฑด์— ์ผ์น˜ํ•˜๋Š” (= true๋ฅผ ๋ฆฌํ„ดํ•˜๋Š”) ๋ฐฐ์—ด์˜ ๋ชจ๋“  ๊ฐ’์„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์–ด ๋ฆฌํ„ดํ•œ๋‹ค.

 

๐Ÿก ํ’€์ด

์ฐพ์•„์•ผ์„œ ๋ช‡๊ฐ ์ง€ ์•Œ์•„์•ผํ•˜๋Š” ์ˆ˜ : countValue :: input[2] -> Number๋กœ ๋ฐ”๊ฟˆ.  

isCollect ํ•จ์ˆ˜ : countValue ๊ฐ€ ๋งž์œผ๋ฉด true๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜.

result : isCollect ์—์„œ true ๊ฐ€ ๋‚˜์˜จ ๊ฐ’๋“ค์„ ๋ชจ์•„๋†“์€ ๋ฐฐ์—ด

๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋ผ๊ณ  ํ–ˆ์œผ๋‹ˆ result์˜ length ๋ฅผ ์ถœ๋ ฅํ•ด์ฃผ๋ฉด ๋œ๋‹ค!

 

 

728x90
๋ฐ˜์‘ํ˜•