코딩테스트(11)
-
[백준 / BOJ] 13909번 창문 닫기 (Javascript / Node js)
https://www.acmicpc.net/problem/13909 13909번: 창문 닫기 서강대학교 컴퓨터공학과 실습실 R912호에는 현재 N개의 창문이 있고 또 N명의 사람이 있다. 1번째 사람은 1의 배수 번째 창문을 열려 있으면 닫고 닫혀 있으면 연다. 2번째 사람은 2의 배수 번째 www.acmicpc.net 문제 해석 문제는 입력받은 N개의 창문을 1부터 N까지 1의 배수에 사람들이 서있고, 2의 배수에 또 다른 사람들이 서있고, 3,, N의 배수에 사람들이 서있어서 1번째부터 N번째의 창문까지 각각의 창문이 그 창문에 서있는 사람의 수만큼 창문이 열리고 닫히고, 1번째부터 N번째 창문까지 열려있는 창문의 개수를 구하는 문제이다. N의 범위가 21억까지여서 처음에는 도통 감이 안잡혔는데, 규..
2023.10.24 -
[백준 / BOJ] 4134번 다음 소수 (Javascript / Node js)
https://www.acmicpc.net/problem/4134 4134번: 다음 소수 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. www.acmicpc.net 문제 해석 문제 자체는 간단하고 명확하다, 테스트 케이스마다 입력받은 n보다 큰 소수 중 가장 작은 소수를 출력하면 정답이다. 즉, n 바로 다음에 나올 소수가 정답이 되겠다. 이번에도 마찬가지로 정수 n의 범위가 1억을 가볍게 넘기는걸 보니 단순한 for문으로는 반드시 시간 초과가 걸릴 것이다. 1. 일단 단순하게 시간 초과를 고려하지 않고 n 바로 다음에 나올 소수를 찾기 위해선 for문과 n++ 을 통해 n에서 1씩 증가시키고 증가된 값을 i라고 가정했을 때 i가 본인과 1..
2023.10.13 -
[백준/BOJ] 14215번 세 막대 [Javascript / Node js]
14215번: 세 막대 (acmicpc.net) 14215번: 세 막대 첫째 줄에 a, b, c (1 ≤ a, b, c ≤ 100)가 주어진다. www.acmicpc.net 문제해설 삼각형이 되기 위해서는 가장 큰 변의 길이가 나머지 두 변의 길이의 합을 넘지 않아야 한다. 그러니 먼저 삼각형의 가장 길이가 긴 변을 찾고, (모든 변의 길이의 합 - 가장 큰 변의 길이) 은 가장 큰 변을 제외한 나머지 두 변의 길이의 합이니, 두 변의 길이의 합이 가장 큰 변의 길이보다 짧다면 가장 큰 변의 길이를 (모든 변의 길이의 합 - 가장 큰 변의 길이) - 1 만큼 줄여주면 삼각형으로 만들 수 있다. 전체코드 const fs = require("fs"); var input = fs.readFileSync("/d..
2023.09.06 -
[백준/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] 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