전체 글88 백준 1157번 백준 1157번을 풀어보았다. 아주 다양한 풀이가 존재하는 문제이지만 세 가지 풀이만 정리해보았다. 나중에 복습할 때 다른 풀이들까지 공부해보기로 하고.. 1. 배열을 이용한 풀이let words = require('fs').readFileSync('/dev/stdin').toString().trim().toUpperCase()let alphabet = Array(26).fill(0)for (const word of words) { const index = word.charCodeAt() alphabet[index-65]++}const max_count = Math.max(...alphabet)const max_alphabet = alphabet.filter((value) => value === ma.. 2025. 1. 23. ==와 ===의 차이점은 무엇인가요? ==와 ===는 모두 비교 연산을 수행하는 연산자이다. JavaScript에서 비교 연산의 대상은 값과 데이터 타입, 두 가지임을 이해하고 아래 내용을 알아보자. == ==는 느슨한 비교를 수행하는 동등 연산자로, 비교하고자 하는 두 대상의 데이터 타입이 다를 경우 동일한 데이터 타입으로 암묵적으로 변환한 뒤 비교를 수행한다. 즉 실질적인 비교 대상은 값으로, 데이터 타입이 달라도 값이 같으면 true를 반환할 수 있다. 그러나 이러한 암묵적인 형변환 과정이 때로는 예측하지 못한 결과를 초래할 수 있다는 점에서 조심히 사용해야 한다. === ===는 엄격한 비교를 수행하는 일치 연산자로, 비교하고자 하는 두 대상의 값과 데이터 타입을 비교한다. 즉 실질적인 비교 대상은 값과 데이터 타입으로, 값과 데이터.. 2025. 1. 22. 백준 11653번 백준 11653번을 풀어보았다. 첫번째 풀이는 시간초과가 발생하였다.let N = Number(require('fs').readFileSync('/dev/stdin').toString())let primeFactor = 2, output = ''while (true) { while (N % primeFactor === 0) { N /= primeFactor output += `${primeFactor}\n` } if (N === 1) break let isPrimeNumber = false while (!isPrimeNumber) { primeFactor += 1 for (let i = 2; i 먼저 나머지가 0이 될 때까지 N을 primeFactor로 나누고 (N에서 하.. 2025. 1. 22. 백준 2581번 백준 2581번을 풀어보았다. 앞의 문제들과 거의 동일한 아이디어를 사용한다. 소수를 찾을 땐 1부터 N까지 확인해볼 수도 있지만 1부터 N의 제곱근까지 확인하는 게 더 효율적이고 이때 반복문 대신 filter 메소드를 사용할 수도 있으며 배열의 합을 구할 땐 반복문을 사용할 수도 있지만 reduce 메소드를 사용하는 게 더 효율적이라는 것. 참고) 백준 2501번, 9506번, 1978번 위 내용을 바탕으로 이 문제는 크게 두 가지 풀이로 구분할 수 있다.M~N 중 소수인 것들만 배열에 넣기M~N 전부 배열에 넣고 소수인 것들만 필터링하기 소수인 것들만 배열에 넣기let [M, N] = require('fs').readFileSync('/dev/stdin').toString().split('\n').m.. 2025. 1. 20. 이전 1 2 3 4 ··· 22 다음