[백준/BOJ] 24266번 알고리즘 수업 - 알고리즘의 수행 시간 5 (Javascript / Node js)
2023. 9. 9. 14:03ㆍ코딩 테스트 (BOJ)
24266번: 알고리즘 수업 - 알고리즘의 수행 시간 5 (acmicpc.net)
문제해설
알고리즘 수행 시간 시리즈 문제들은, 문제에서 제시한 함수의 시간 복잡도를 계산하는 문제들로,
로직을 구현하는게 아닌 문제에서 제시한 함수의 시간 복잡도를 사고하고 입력받은 값 N에 어떻게 비례하는지만 출력해주면 되는 문제이다.
이번 문제는 3중 for문이니 n 의 3제곱으로 수행시간이 비례하는 것을 알 수 있다. 시간 복잡도를 계산하는 법은 알고리즘 수행 시간 시리즈 문제들을 전부 푼 뒤, 따로 포스팅해야겠다.
전체코드
const fs = require("fs");
const input = fs.readFileSync("../input.txt").toString().trim();
var N = BigInt(input);
answer = N*N*N;
answer = answer.toString().replace("n", ""); // BigInt 뒤에 n을 제거해준다.
console.log(answer);
console.log(3);
이번 문제를 풀면서 얻게된 점
1. Javascript에는 2^53 - 1보다 큰 정수를 표현할 수 있는 내장 객체 BigInt 가 있다.
2. BigInt에 담긴 수는 출력했을때 뒤에 n이 붙는다. Ex) 1222901239123n
나는 javascript가 변수의 자료형을 따로 선언하지 않아서 기본적으로 var 객체로 long 이든 long long 이든 모두 커버 할 수 있다고 생각했다.
그런데 그렇게 풀고 보니 당연히 원하는 결과값이 나오지 않았고 javascript에도 BigInt라는 내장함수가 있다는 점을 배웠다. 또한 BigInt를 사용한 수는 뒤에 n이 붙는다는 사실도 알게 되었다.
'코딩 테스트 (BOJ)' 카테고리의 다른 글
[백준/BOJ] 2745번 진법 변환 (Node js / Javascript) (0) | 2023.09.14 |
---|---|
[백준/BOJ] 24313번 알고리즘 수업 - 점근적 표기 1 (Node js/ Javascript) (0) | 2023.09.12 |
[백준/BOJ] 14215번 세 막대 [Javascript / Node js] (2) | 2023.09.06 |
[백준/BOJ] 3009번 네 번째 점 (Javascript / Node js) (0) | 2023.09.02 |
[백준/BOJ] 11653번 소인수분해 (Javascript / Node js) (0) | 2023.08.30 |