✏️기록하는 즐거움
article thumbnail
반응형

1. Link

 

10991번: 별 찍기 - 16

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

www.acmicpc.net

 

2. 문제

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

입력 > 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력 > 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.

2.1. | 예제 입력 1

<javascript />
3

2.2. | 예제 출력 1

<javascript />
* * * * * *

2.3. | 예제 입력 2

<javascript />
4

2.4. | 예제 출력 2

<javascript />
* * * * * * * * * *

 

3. 제출

<javascript />
// Solution 1 const fs = require("fs"); const input = Number( process.platform === "linux" ? fs.readFileSync("/dev/stdin").toString() : `4` ); let blank = input; let star = 0; for (let i = 1; i <= input; i++) { blank -= 1; star = i; console.log(" ".repeat(blank) + "* ".repeat(star)); }
<javascript />
// Solution 2 const fs = require("fs"); const input = Number( process.platform === "linux" ? fs.readFileSync("/dev/stdin").toString() : `4` ); let blank = input; let star = 0; let answer = ""; for (let i = 1; i <= input; i++) { blank -= 1; star = i; answer += " ".repeat(blank) + "* ".repeat(star) + "\n"; } console.log(answer.trimEnd());

 

4. 풀이과정

공백과 별의 개수를 변수로 두어 풀었다.

이전 문제 와 동일하게 풀어내면 된다 :)

 

Solution 2의 경우, answer에 줄바꿈 문자가 들어가서 마지막에 한 줄이 더 생기기 때문에

trimEnd() 메서드로 문자열 끝의 공백을 제거해주었다.

 

5. 개념

5.1. String.prototype.trimEnd()

  • 문자열 끝 공백이 제거된 새 문자열을 반환한다.
  • 문자열에 공백이 없어도 에러가 발생하지 않고, 복사본을 반환한다.

6. Comment

for문 안에서 매번 console.log를 찍어주는 것보다 하나의 문자열에 저장한 뒤, for문 밖에서 출력을 해주는 것이 메모리와 시간을 줄일 수 있었다.

 

반응형
profile

✏️기록하는 즐거움

@nor_coding

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!