dogo_ day

JavaScript 코딩테스트 4. 문제(백준 2438번) 본문

IT/코딩테스트_

JavaScript 코딩테스트 4. 문제(백준 2438번)

dogo_ 2023. 4. 28. 19:19

🔅알고리즘 난이도 Lv. 1

🌈문제풀이

 아이디어는 간단하다. 입력받은 n개의 행 만큼 별을 +1 씩 증가시키면서 출력하는 것 이다.

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

n = Number(input[0]);

let star = '';

for(let i = 1; i <= n; i++){
    star += '*'
    console.log(star);
}

이 코드는 매번 console.log(star) 가 실행된다.

만약 n의 값이 크거나 for문 안에 처리해야하는 로직이 복잡할 경우 성능이 떨어질 수 있다.

 

그래서 결과값을 하나의 스트링에 저장하고 마지막에 console.log를 하는 방법이 있다.

// CASE 02
let result = '';

for(let i=0; i<n; i++){
	for(let j=0; j<=i; j++){
    	result += '*';
    }
    result += '\n';
}

console.log(result);

 

case01은 136ms 이고 case02는 120ms 이다.

수행시간에 영향을 주는 다양한 요소가 존재하겠지만 이후에 알고리즘 문제에서 시간초과가 난다면 case02를 고려하는 것을 추천한다.
대표적인 백준문제가 15552 이다. 

 

참고자료

패스트캠퍼스 - JavaScript 코딩테스트 131개 예재 & CS지식으로 끝내기