728x90
<합>
www.acmicpc.net/problem/8393
#포인트
-자연수 N의 최대 값은 10000이다.
-따라서, 단순히 1부터 10000까지의 값을 차례대로 더해도 괜찮다.
-이 경우 시간 복잡도 O(N)이다.
#정답예시
//fs 모듈을 이용해 파일 전체를 읽어와 문자열로 저장하기
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
//문자열을 수로 변환할 때 parseInt에 비하여 Number의 속도가 더 빠르게 동작
let n = Number(input[0]);
let summary = 0;
for(let i=1; i <= n; i++){
summary += i;
}
console.log(summary);
# 포인트2
-혹은 단순히 등차수열의 합 공식을 이용할 수 있다.
-등차수열의 제 1항부터 제 N항까지의 합을 Sn이라고 하자.
-첫째 항이 a, 마지막 항이 l일때: Sn = N(a + l)/2
#정답예시2
//fs 모듈을 이용해 파일 전체를 읽어와 문자열로 저장하기
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
//문자열을 수로 변환할 때 parseInt에 비하여 Number의 속도가 더 빠르게 동작
let n = Number(input[0]);
//등차수열의 합 공식
console.log(n * (n+1) / 2);
<구구단>
www.acmicpc.net/problem/2739
#포인트
-단순히 1단부터 N단까지 반복 문법을 이용하면 된다.
-2중 반복 문법을 사용하여 문제를 해결할 수 있다.
#정답예시
//fs 모듈을 이용해 파일 전체를 읽어와 문자열로 저장하기
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
//문자열을 수로 변환할 때 parseInt에 비하여 Number의 속도가 더 빠르게 동작
let n = Number(input[0]);
for(let i=1; i<= 9; i++){
//템플릿 리터럴을 사용해 문자열 내부에 변수를 포함합니다.(백틱 문자 사용)
console.log(`${n} * ${i} = ${n * i}`);
}
<별 찍기1>
www.acmicpc.net/problem/2438
#내가 푼 코드
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
let n = Number(input[0]);
for(let i=1; i<=9; i++){
console.log(i * ${*});
}
#포인트
-2중 반복 문법을 이용하여 문제를 해결할 수 있다.
#정답예시
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
let n = Number(input[0]);
let result = "";
for(let i = 0; i < n; i++){ //층(행)만큼 반복
for(let j=0; j <= i; j++){ //현재 행만큼 별을 출력
result += "*";
}
result += "\n";
}
console.log(result);
<빠른 A+B>
www.acmicpc.net/problem/15552
#포인트
-JavaScript를 이용해 문자열을 출력할 수 있어야한다.
-빠르게 출력하기 위해 하나의 문자열 변수에 정보를 담은 뒤에 한꺼번에 문자열을 출력한다.
-한줄(line)을 출력할 때마다 console.log()를 수행하면 많은 시간이 소요된다.
-모든 "줄(line)"에 대한 정보를 하나의 문자열에 담았다가 한꺼번에 출력한다.
#정답예시
//fs모듈을 이용해 파일 전체를 읽어와 문자열로 저장하기
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
//문자열을 수로 변환할 때 parseInt에 비하여 Number의 속도가 더 빠르게 동작
let testCase = Number(input[0]);
let answer = '';
for(let t=1; t <= testCase; t++){
let data = input[t].split(' ');
let a = Number(data[0]);
let b = Number(data[1]);
answer += a + b + '\n';
}
console.log(answer);
728x90
'개인공부 > 패스트캠퍼스 알고리즘' 카테고리의 다른 글
1-7. JavaScript 문자열 문제풀이 (0) | 2023.08.01 |
---|---|
1-6. JavaScript 배열 문제풀이 (0) | 2023.07.30 |
1강-4. 조건문 문제풀이 (0) | 2023.06.29 |
1강-3. 입출력 문제풀이 (0) | 2023.06.28 |
1강-2. 알고리즘문제를 풀기 위한 자바스크립트 문법 (0) | 2023.06.26 |