Baekjoon

    [Baekjoon] 바이러스

    문제 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터의 수를 출력하는 프로그램을 작성하시오. 풀이 BFS(너비우선탁색), Queue(큐)를 이용하여 해결 주어진 input값으로 이루어진 graph를 생성 컴퓨터들의 상태가 담길 distance를 생성 1번 컴퓨터와 연결된 모든 컴퓨터를 0 => 1 로 변경 distance 배열중 1인 요소들의 개수를 return Code const fs = require('fs'); const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n'); const [total, node, ...list] = input const graphElements = li..

    [Algorithm] 소수구하기

    문제 N이 주어졌을 때, N보다 크고 2N보다 작거나 같은 소수의 개수를 구하는 문제 풀이 0 ~ 2N까지의 숫자에 해당하는 배열을 생성하고 에라토스테네스의 체 를 이용하여 소수를 구하려고 한다. 이 방법은 2부터 구하고자 하는 숫자까지를 모두 나열하고 2부터 차례대로 1씩 증가하면서 해당 숫자의 배수를 모두 지우는 방식이다. 그렇기 때문에 코드에서는 배열의 index를 활용해서 true -> false로 변경시켰다. 이 때 해당 수의 제곱근 까지만 범위를 제한하게되면 루프횟수를 O(logN)으로 만들어 줄 수 있다. 제곱근 의 법칙이 성립하는 이유는 어떤 수(n)은 두 수 (a, b)의 곱으로 나타낼 수 있다. 예를 들어 12는 2 * 6, 3 * 4로 나타낼 수 있고 두가지 경우의 작은 수를 보게되면..