본문 바로가기
개발/알고리즘 풀기

[백준 알고리즘] 10807 개수세기 Javascript 풀이

by 코딩하는짱구 2023. 10. 27.
반응형

[백준 알고리즘] 10807 개수세기 Javascript 풀이

 

 

풀이

알고리즘 풀면서 중요한 것은 항상 나에게 필요한 정보를 어떻게 얻을 것인지 논리적으로 사고하여 접근하는 것이다. 

1. 둘째 줄에 공백으로 구분되어 주어진 정수를 숫자 배열로 만든다. 
2. 정수 배열의 수 만큼 반복문을 돌며 주어진 v와 일치하는 것이 있는지 확인
3. 일치한 만큼 cnt를 올려주고, 출력

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split('\n');

// let a = parseInt(input[0]);

let numArr = input[1].split(' ').map((item) => Number(item)); // 둘째 줄 배열
let c = parseInt(input[2]);
let cnt = 0;

for (let i = 0; i < numArr.length; i++) {
  if (numArr[i] === c) {
    cnt++;
  }
}

console.log(cnt);

 

 

keypoint 

주어진 정수 문자열을 배열로 만드는 과정. split 을 통해 배열화 하고 map을 통해 배열의 문자요소를 숫자로 만들어준다. 

let arrExample = '1 2 3 4 5';
console.log(arrExample);
//1 2 3 4 5

let arrExample2 = arrExample.split(' ');
console.log(arrExample2);
//['1','2','3','4','5']

let arrExample3 = arrExample2.map((item) => Number(item));
console.log(arrExample3);
//[1,2,3,4,5]

 

문자를 숫자로 변환할 때  Number 말고  parseInt를 사용할 수도 있는데, 이 두 함수는 서로 조금 다르다.  

let arr = ['1', '2', '3', '4', '5'];

let parsTest = arr.map((item) => parseInt(item));
console.log(parsTest);
//[1,2,3,4,5]

let numTest = arr.map((item) => Number(item));
console.log(numTest);
//[1,2,3,4,5]

let a = '2023년';
let b = '20.24512';

console.log(Number(a), Number(b));
//NaN, 20.24512

console.log(parseInt(a), parseInt(b));
//2023, 20

둘 모두 숫자형으로 타입을 바꿔주지만, 문자열이 숫자로 시작하는 경우와 소수점을 표시하는 부분에 대해서는 차이점이 있으니, 이 차이를 알고 잘 활용해야한다.

 

반응형