본문 바로가기

전체 글

(202)
[JS] 백준 약수, 배수와 소수 - 11653번 오늘은 이번 단계의 마지막 문제이다. 시골에 와서 와이파이가 없다...(즉... 핫스팟을 틀고 빠르게 문제를 풀어야한다.) 문제 11653번 https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 이 문제는 2부터 시작하여 입력받은 수까지 반복문을 돌린다. 만약 입력받은 수가 1이면 소인수분해를 할 수 없기 때문에 반복문을 빠져나와준다. 그리고 입력받은 수에서 2부터 입력받은 수까지 나눠줬을 때 나머지가 0이 되는 숫자를 배열에 넣어준다. 여기서 2가 2번이 나눠진다면 그만큼을 더 while문을 통해 나눠준다. 마지막으로 foreach를 이용하여 소인수를 넣어준 배열을 ..
[JS] 백준 약수, 배수와 소수 - 2581번 으... 어제 아침부터 목이 안 좋더니.. 결국 감기에 걸렸다... 오늘 하루종일 멍하고 추웠다. 분명 목만 까끌거렸는데 이제는 콧물이랑 코막힘.. 그리고 재채기까지 동반한다. (힝... 아빠한테 목감기 약만 부탁했는데...) 머리도 어지럽고... 오늘 문제는 쉬워보이니까 얼른 끝내야지하고 생각했는데... 너무 오래걸렸다. 자꾸 이상하게 생각하고 오타를 냈기 때문이다. 그래도 내가 작성한 풀이를 알맞게 수정하고 싶어서 여러 가지 찾아보았다. 일단 오늘의 문제는 이거다. 문제 2581번 https://www.acmicpc.net/problem/2581 2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 ..
[JS] 백준 약수, 배수와 소수 - 1978번 으... 너무 졸리다. 오늘은 바람을 너무 맞아서 더 졸린 것 같다... 얼른 하고 일찍 자야지... 문제 1978번 https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 이 문제는 소수를 구하는 문제이다. 어제 사용했던 풀이를 활용해서 고쳐줘야겠다. 일단 주어진 입력값이 2보다 작으면 소수가 아니니까 return 해준다. 그리고 2부터 num-1까지를 입력값에서 나누었을 때 나머지가 0이되면 소수가 아니라는 뜻이므로 return 해준다. 둘 다 해당하지 않는다면 소수라는 뜻이기 때문에 count를 하나올려준다. 다 ..
[JS] 백준 약수, 배수와 소수 - 9506번 문제 9506번 https://www.acmicpc.net/problem/9506 9506번: 약수들의 합 어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라. www.acmicpc.net 맨 마지막 숫자는 pop()으로 제거해줄 수 있다. 그리고 1은 항상 약수이기 때문에 미리 약수 배열에 넣어주면 된다고 한다. 나눠지는 약수인지 확인하기 위해서는 제곱근 범위까지만 알면 되기에 Math.sqrt() 메서드로 제곱근을 구하면 된다. reduce()로 모든 약수의 합을 구하고, 입력된 입력값과 비교해 완전수인지 판단해준다. 만약 완전수가 아니라면 어떤 숫자is ..
[JS] 백준 약수, 배수와 소수 - 2501번 문제 2501번 https://www.acmicpc.net/problem/2501 2501번: 약수 구하기 첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다. www.acmicpc.net 이 문제는 N만큼 for문을 사용하여 나눠지는 i를 배열에 넣으면 될 것 같다. 만약에 배열의 길이가 K보다 작을 경우 K번째 약수가 존재하지 않는 경우라는 뜻이기 때문에 0을 출력해준다. 여기서 for문을 사용할 때는 i가 1부터해야 약수인 것을 계산할 수 있다. 그리고 K번째는 인덱스로 K-1이다. 배열에 넣을 때 push로 해야하는데 + 로 해버려서 틀렸다... const readFileSyncAdress = process.platform === '..
[JS] 백준 약수, 배수와 소수 - 5086번 이제는 빠르게 넘어갈 건 넘어가면서 풀려고 한다. 다음 단계인 약수, 배수와 소수부터 시작하겠다. 문제 5086번 https://www.acmicpc.net/problem/5086 5086번: 배수와 약수 각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 다 아니라면 neither를 출력한다. www.acmicpc.net 음... 일단 0이 2개 주어질 때까지 반복문을 돌려주고 약수인지, 배수인지 아니면 둘 다 아닌지 조건문을 이용하여 확인하면 될 것 같다. const readFileSyncAdress = process.platform === 'linux' ? '/dev/stdin':'./input.txt' const input = requir..
[JS] 백준 일반 수학 1 - 다섯 번째 이야기 오늘은 자취방을 뺐다. 너무 힘들어... 문제 2292번 https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 이 문제는 범위가 증가할 때마다 둘러싼 방이 각 6의 배수로 증가하고 있다. 그래서 sum이 input보다 작을 때까지 6의 배수를 sum에 더해줬다. 그리고 몇 번째로 더해줬는지 num을 출력해주면 된다. const readFileSyncAdress = process.platform === 'linux' ? '/dev/stdin':'./input...
[JS] 백준 일반 수학 1 - 네 번째 이야기 문제 2903번 https://www.acmicpc.net/problem/2903 2903번: 중앙 이동 알고리즘 상근이는 친구들과 함께 SF영화를 찍으려고 한다. 이 영화는 외계 지형이 필요하다. 실제로 우주선을 타고 외계 행성에 가서 촬영을 할 수 없기 때문에, 컴퓨터 그래픽으로 CG처리를 하려고 한다. www.acmicpc.net 문제를 보니까 2**input+1을 하면 한줄의 점 개수가 나온다. 그리고 그 점의 개수에 제곱을 해주면 점의 수를 구할 수 있다. const readFileSyncAdress = process.platform === 'linux' ? '/dev/stdin':'./input.txt' const input = require("fs").readFileSync(readFileS..