반응형
[백준 알고리즘] 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
둘 모두 숫자형으로 타입을 바꿔주지만, 문자열이 숫자로 시작하는 경우와 소수점을 표시하는 부분에 대해서는 차이점이 있으니, 이 차이를 알고 잘 활용해야한다.
반응형
'개발 > 알고리즘 풀기' 카테고리의 다른 글
for, foreach 문의 차이, 최대공약수/최소공배수 구하기, 소수찾기 (1) | 2023.11.10 |
---|---|
[백준 알고리즘] 2884 알람시계 Javascript 풀이 (0) | 2023.10.24 |
[정렬알고리즘] 퀵정렬 Node.js 예제 (1) | 2023.09.28 |
TIL 230413 테스트_지뢰찾기 맵 만들기 (0) | 2023.04.13 |
TIL 230412 _소수찾기, 실패율, 체육복, 최대공약수와 최소공배수, K번째 수, 나머지가 1이 되는 수 찾기, 폰켓몬 (0) | 2023.04.13 |