-
1977. [JavaScript]완전제곱수JavaScript_알고리즘/Bronze II 2024. 6. 17. 17:27
1. 문제
https://www.acmicpc.net/problem/1977
2. 접근 방법
- 시간 제한: 2초
- 메모리 제한: 128MB
- 수학
- 브루트포스
3. 자바스크립트 코드
// JS 노드 모듈 불러오기 let fs = require("fs"); // 파일 읽어서 string으로 변환 한 후 공백으로 분리 let input = fs.readFileSync("./1977.txt").toString().split("\n"); // 시작점 끝점 변수 선운 const start = parseInt(input[0]); const end = parseInt(input[1]); // 최소값 저장할 변수 let min_value = 10 ** 9; // 1씩 증가할 변수와 총합값 저장 let number = 1; let total = 0; // 제곱 수가 end 보다 작을때까지 반복 while (number * number <= end) { // JS Math 내장함수 사용하여 제곱 진행 if (Math.pow(number, 2) >= start && Math.pow(number, 2) <= end) { if (min_value >= Math.pow(number, 2)) { // 최소값이 10**9 로 지정해뒀기 떄문에 제일 처음 만난 최소값을 갱신 min_value = Math.pow(number, 2); } // 범위 내의 경우 총합에 제곱 값을 더해나감 total += Math.pow(number, 2); } // number 라는 인덱스 1씩 증가 number += 1; } // 초기값의 경우 값이 갱신되지 않았기 떄문에 -1 출력 if (total === 0) { console.log(-1); } else { console.log(total); console.log(min_value); }
4. 문제를 풀고난 후 생각
- 자바스크립트로 문제를 처음 접해서 문법으로 익숙해지기 위해서 문제를 해결함.
- 1부터 시작해서 제곱을 진행해보며 제곱값이 end 보다 작을때까지 반복문을 진행해가며 total 값과 min 값을 갱신해간다.
5. 문제를 푸는데 도움이 되는 지식
- 브루트포스
- 수학
'JavaScript_알고리즘 > Bronze II' 카테고리의 다른 글
2153. [JavaScript]소수 단어 (0) 2024.06.17