Development

[TIL] 코딩테스트, 테스트 코드 강의, 알고리즘 강의

개발자 강정 2022. 2. 2. 22:17

자바스크립트 코딩테스트

https://www.acmicpc.net/problem/1302

 

1302번: 베스트셀러

첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고

www.acmicpc.net

풀이

https://github.com/fancyers/coding-test/blob/main/%EB%B2%A0%EC%8A%A4%ED%8A%B8%EC%85%80%EB%9F%AC.js

 

GitHub - fancyers/coding-test: 알고리즘 문제 풀기

알고리즘 문제 풀기. Contribute to fancyers/coding-test development by creating an account on GitHub.

github.com

 

테스트 코드 (Jest) 강의 수강

아직 테스트 코드에 노력을 들인다는 것이 어색하다. 이것을 지금처럼 배우는 단계, 미니 프로젝트에도 적용하는 것이 맞는 것인지 잘 모르겠다. 하지만 잘 짜두면 매우 유용한 도구가 될 것 같다. 여러 조건들을 일일이 시험하는 것은 아주 까다롭기 때문이다.

 

n이하 소수 구하기

소수 문제는 만날 때마다 아직 어렵다. 가장 효율적으로 풀으려면 에라토스테네스의 체의 개념을 도입해야 하는데 아직 머리가 잘 안 돌아간다.

let primes = []
let notPrime = false
for (let i = 2; i <= n; i++) {
    for (let j of primes) {
        if (j > Math.sqrt(i)) break
        if (i % j === 0) {
            notPrime = true
            break
        }
    }
    if (notPrime) {
        notPrime = false
        continue
    }
    primes.push(i)
}
console.log(primes)