[백준 Node.js] for문

goum·2021년 7월 30일
0

BAEKJOON Online Jubge

목록 보기
4/5
post-thumbnail

3단계 for문을 사용해 보자!


[2739] 구구단

문제

구구단을 출력하는 문제
https://www.acmicpc.net/problem/2739

code

const input = require('fs').readFileSync('/dev/stdin').toString().trim();
for(let i=1; i<=9; i++) {
    console.log(`${input} * ${i} = ${input*i}`)
}

comment

for문 예제로 많이 나온는 간단한 문제였다.


[10950] A+B - 3

문제

A+B를 여러번 출력하는 문제
https://www.acmicpc.net/problem/10950

code

const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
const count = Number(input[0]);
for(let i=1; i<=count; i++) {
    let numbers = input[i].split(' ');
    console.log(Number(numbers[0]) + Number(numbers[1]))
}

comment

처음 input 받아올때 '.map(v=>+v)'를 이용해 숫자로 변경해줬더니 런타임에러가 나왔다. 혹시나 해서 map을 뺐더니 성공!


[8393] 합

문제

1부터 N까지의 합을 구하는 문제. 물론 반복문 없이 풀 수도 있습니다.
https://www.acmicpc.net/problem/8393

code

const input = require('fs').readFileSync('/dev/stdin').toString().trim();
const n = Number(input)
let sum = 0;
for(let i=1; i<=n; i++) {
    sum += i
}
console.log(sum)
//for문 없이 풀기
const input = require('fs').readFileSync('/dev/stdin').toString().trim();
const n = Number(input)
console.log(parseInt(n*(n+1)/2))

comment

일단 반복문으로 풀고 문제설명의 반복문 없이 풀기가 궁금해서 구글링 해봤더니 공식이 따로 있었다. 앗뜨거워 블로그에서 도움 받아 다시 풀어봤다.


[15552] 빠른 A+B

문제

빠르게 입력받고 출력하는 문제
https://www.acmicpc.net/problem/15552

code

let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');

let max = Number(input[0]);
let answer = '';

for (let i = 1; i <= max; i++) {
    let num = input[i].split(' ');
    answer += Number(num[0]) + Number(num[1]) + "\n";
}

console.log(answer);

comment

10950 문제와 같지만 시간제한이 1초로 짧다. 처음에 for문 안에서 console을 출력했더니 시간초과로 실패했다. 구글링해보니 따로 변수른 선언해 값을 더해두고 마지막에 console로 출력하는 풀이가 많아 시도해보니 해결되었다. 매번 출력하는건 출력하는데 시간이 걸리기 때문에 시간이 초과 되는걸까? 이유를 잘모르겠다.


[2741] N 찍기

문제

1부터 N까지 출력하는 문제
https://www.acmicpc.net/problem/2741

code

let input = require('fs').readFileSync('/dev/stdin').toString();
let answer = '';
for(let i=1; i<=input; i++) {
    answer += i+'\n'
}
console.log(answer)

comment

15552번 문제와 같이 for문에서 console을 출력하면 시간초과로 따로 변수를 지정해 값을 더해 풀었다.


[2742] 기찍 N

문제

제문 는하력출 지까N 터부1
https://www.acmicpc.net/problem/2742

code

let input = require('fs').readFileSync('/dev/stdin').toString();
const number = Number(input)
let answer = '';
for(let i=number; i>0; i--) {
    answer += i+'\n';
}
console.log(answer);

comment

2741을 반대로 하면되는 문제였다. input은 숫자로 만들어줄것!


[11021] A+B - 7

문제

A+B를 조금 더 아름답게 출력하는 문제
https://www.acmicpc.net/problem/11021

code

let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
const count = Number(input[0]);
for(let i=1; i<=count; i++) {
    let numbers = input[i].split(' ');
    console.log(`Case #${i}: ${Number(numbers[0]) + Number(numbers[1])}`);
}

comment

템플릿리터럴을 이용해 풀었는데 {i}앞에 $빠진것도 모르고 얼마나 틀렸는지.. #때문인지 당연히 쓰여있다고 착각했다.


[11022] A+B - 8

문제

A+B를 바로 위 문제보다 아름답게 출력하는 문제
https://www.acmicpc.net/problem/11022

code

let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
const count = Number(input[0]);
for(let i=1; i<=count; i++) {
    let numbers = input[i].split(' ');
    console.log(`Case #${i}: ${numbers[0]} + ${numbers[1]} = ${Number(numbers[0]) + Number(numbers[1])}`);
}

comment

11021문제와 크게 다를것 없었다.


[2438] 별찍기 - 1

문제

별을 찍는 문제1 (왼쪽정렬)
https://www.acmicpc.net/problem/2438

code

const input = require('fs').readFileSync('/dev/stdin').toString().trim();
for(let i=1; i<= input; i++) {
    console.log('*'.repeat(i))
}

comment

string 메소드 repeat를 이용해서 풀었다.


[2439] 별찍기 - 2

문제

별을 찍는 문제2 (오른쪽 정렬)
https://www.acmicpc.net/problem/2439

code

const input = require('fs').readFileSync('/dev/stdin').toString().trim();
for(let i=1; i<= input; i++) {
    console.log(' '.repeat(input-i)+'*'.repeat(i))
}

comment

2438문제와 동일


[10871] X보다 작은 수

문제

for와 if를 같이 쓰는 문제
https://www.acmicpc.net/problem/10871

code

const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
let [aLength, x] = input[0].split(' ');
x = Number(x);
const numbers = input[1].split(' ');
let answer = '';
for(let i=0; i<aLength; i++) {
    if(x > Number(numbers[i])) {
        answer += numbers[i]+' ';
    }
}
console.log(answer)

comment

풀고 검색해보니 filter나 forEach같은 배열 메소드를 이용해서 푼 사람들도 있었다. 다음에 시도해봐야겠다.


0개의 댓글