백준(35)
-
[백준/BOJ] 1978번 소수 찾기 (Javascript/Node js)
1978번: 소수 찾기 (acmicpc.net) 1978번: 소수 찾기첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.www.acmicpc.net 문제풀이 처음에는 N 범위가 크지 않아서 이중 for문으로 하나하나 모든 숫자에 모든 숫자를 %연산을 돌려서 무식하게 찾아내려고 했다가. 옆에서 지켜보던 친구가 에라토스테네스의 체를 사용해보라고 말해줘서 에라토스테네스의 체가 뭐지? 하고 검색해봤다. ... 에라토스테네스의 체 - 위키백과, 우리 모두의 백과사전 (wikipedia.org) 에라토스테네스의 체 - 위키백과, 우리 모두의 백과사전위키백과, 우리 모두의 백과사전. 에라토스테네스의 체 수학에서 에라토스테네스의 체는 소수를 찾..
2023.08.29 -
[백준/BOJ] 9506번 약수들의 합 [javascript/Node js]
9506번: 약수들의 합 (acmicpc.net) 9506번: 약수들의 합 어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라. www.acmicpc.net 이번 문제는 풀면서 알고리즘을 구상하는 사고력이 늘었다기 보다는 javascript는 이런 것도 있구나 알게된 점이 더 컸다. 문제풀이 n의 약수중 본인을 제외한 가장 큰 약수는 짝수일 경우에는 1을 제외한 가장 작은 약수인 2로 n을 나눈 값과 같을 것이고, 홀수일 경우에는 2로 나눈 값보다 작을 것이다. 그러니 1부터 n을 2로 나눈 값까지만 범위를 잡고 for문을 실행해도 모든 약수를 탐색할 수 있다..
2023.08.28 -
[백준/BOJ] 2869번 달팽이는 올라가고 싶다 (Node js/javascript)
2869번: 달팽이는 올라가고 싶다 (acmicpc.net) 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 문제해석 먼저 문제의 입력값과 제한시간을 보면 단순히 반복문을 통해 날짜를 세는 방식은 불가하다는 것을 예상할 수 있다. 이제 문제를 보기좋게 그려(?)보자 Day - 1 2 3 4 낮 | 밤 - 낮 | 밤 - 낮 | 밤 - 낮 이동거리 - 2 -1 3 -2 4 -3 5 (A) (B) (A) (B) (A) (B) (A) 첫째날은 A만큼 올라가고 둘째날 이후 부터는 하루에 (A-B)만큼 올라감 규칙에서 벗어난 첫째날은 하루를 소모했다고 치고 총 올라야할 높이에서..
2023.08.27 -
[백준/BOJ] 1193번 분수찾기(Node js/javascript)
1193번: 분수찾기 (acmicpc.net) 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 문제해석 먼저 문제에 분수들이 담긴 무한한 배열을 규칙을 찾기 쉽도록 나열해보자. 1/1 (1) 1/2 -> 2/1 -asc : 2 (2) (3) 3/1 -> 2/2 -> 1/3 -desc : 3 (4) (5) (6) 1/4 -> 2/3 -> 3/2 -> 4/1 -asc : 4 (7) (8) (9) (10) . . . 위와 같이 나열했을때 가장 먼저 눈에 보인 규칙은 1. 짝수일때 asc(오름차순), 홀수일때 desc(내림차순)이다. 2. 분수들이 위와 같이 [1/1] , [1/2 -> 2/1], [3/1-> 2/2 -> 1/3] ... 와 같이 ..
2023.08.26 -
[백준/BOJ] 2292번 벌집(Node js/javascript)
2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 처음 문제를 읽고 그림을 봤을때는 먼저 이동할때 보이는 숫자들의 규칙을 찾으려고 시도했다. 문제 해설 위 벌집을 아래와 같이 [1]을 1번째 layer, [2,3,4,5,6,7]을 2번째 layer , [20, ... , 37]을 layer 3이라고 해보자. 그럼 이제 이 찾으려는 숫자가 포함된 layer가 곧 1에서 해당 숫자로 몇번 이동해야 되는지를 나타낸다. layer 1 : 1 layer 2 : 2 - 7 (6) layer 3 : 8 - 19 (12) layer ..
2023.08.25