728x90
[문제1]
https://www.acmicpc.net/problem/2438
2438번: 별 찍기 - 1
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
www.acmicpc.net
[나의코드]
let fs = require("fs");
let input = fs.readFileSync("dev/stdin").toString().split("\n");
let n = Number(input[0])
for(i=1;i<=n;i++){
console.log("*".repeat(i))
}
[해설코드]
let result=""
for(let i=0;i<n;i++){
for(let j=0; j<=i;j++){
result += "*";
}
result += "\n"
}
console.log(result)
해설코드에서는 이중반복문을 사용했는데 시간복잡도가 더 올라가서 별로이지않은가라는 생각이 듦...
[문제2]
https://www.acmicpc.net/problem/15552
15552번: 빠른 A+B
첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다.
www.acmicpc.net
[나의 실패코드]
let fs = require("fs");
let input = fs.readFileSync("dev/stdin").toString().split("\n");
let n = Number(input[0])
for(i=1;i<=n;i++){
console.log(Number(input[i].split(" ")[0]+Number(input[i].split(" ")[1])))
}
시간 초과 뜸;;
[해설코드]
let fs = require("fs");
let input = fs.readFileSync("input.txt").toString().split("\n");
let n = Number(input[0]);
let answer="";
for(let i=1;i<=n;i++){
let data=input[i].split(" ");
let a = Number(data[0])
let b = Number(data[1])
answer+= a+b+ "\n";
}
console.log(answer)
[인사이트]
console.log를 매 계산마다 계속 찍는것은 출력시간을 길어지게 해, 한번에 모아서 찍는 것이 더 시간을 단축시킬 수 있는 방법이다.
미묘하지만 다른 코드들...
for(let i=1;i<=n;i++){
let data=input[i].split(" ");
let a = Number(data[0])
let b = Number(data[1])
answer=answer+ (a+b)+ "\n";
}
console.log(answer) // 2 4 6 8 10
for(let i=1;i<=n;i++){
let data=input[i].split(" ");
let a = Number(data[0])
let b = Number(data[1])
answer+= a+b+ "\n";
}
console.log(answer) //2 4 6 8 10
for(let i=1;i<=n;i++){
let data=input[i].split(" ");
let a = Number(data[0])
let b = Number(data[1])
answer = answer+ a+b+ "\n";
}
console.log(answer) //11,22,33,44,55
1번과 2번의 경우 a+b가 먼저 숫자로 계산된 후에 answer에 추가됨, 3번의 경우 answer+a(문자열 계산)이 먼저이루어진 후에 문자열+b(문자열)계산이 이루어짐
728x90
'알고리즘' 카테고리의 다른 글
자바스크립트 문자열 문제풀이 (0) | 2023.03.24 |
---|---|
자바스크립트 배열 문제풀이 (0) | 2023.03.23 |
자바스크립트 조건문 문제풀이 (0) | 2023.03.21 |
[알고리즘 코딩테스트](2)자료구조-2: 구간 합(3) (0) | 2023.02.17 |
[알고리즘 코딩테스트](2)자료구조-2: 구간 합(2) (0) | 2023.02.16 |