✏️기록하는 즐거움
article thumbnail

Link

 

10992번: 별 찍기 - 17

첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.

www.acmicpc.net

 

문제

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

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

| 예제 입력 1

1

| 예제 출력 1

*

| 예제 입력 2

2

| 예제 출력 2

 *
***

| 예제 입력 3

3

| 예제 출력 3

  *
 * *
*****

 

제출

const fs = require("fs");

const input = Number(
  process.platform === "linux" ? fs.readFileSync("/dev/stdin").toString() : `4`
);

let answer = " ".repeat(input * 2 - 1).split("");
let start = Math.floor((input * 2 - 1) / 2);
let end = start;

for (let i = 1; i <= input; i++) {
  answer[start] = "*";
  answer[end] = "*";

  start--;
  end++;

  if (i === input) {
    answer.fill("*");
  }

  console.log(answer.join("").trimEnd());

  answer.fill(" ");
}

 

풀이과정

answer에는 input * 2 - 1 만큼의 공백이 배열로 들어있다.

startend는 공백이 별로 바뀔 처음과 끝 인덱스이다.

따라서 for문이 진행됨에따라 start는 앞으로, end는 뒤로 가며 공백을 별로 바꿔준다.

 

백준의 출력 예시를 보면 각 줄의 끝에 공백이 포함되어 있지 않기 때문에

trimEnd() 메서드로 끝의 공백을 제거해준 뒤 정답을 출력한다.

 

개념

Math.floor()

  • 주어진 숫자와 같거나 작은 정수 중에서 가장 큰 수를 반환한다. (소수점 내림)

Array.prototype.fill()

  • 배열의 시작 인덱스부터 끝 인덱스까지 지정한 값으로 채워 변경된 배열을 반환한다.
  • 매개변수 구성은 다음과 같다.
    • value : 배열을 채울 값
    • start : 시작 인덱스 (optional)
    • end : 끝 인덱스 (optional)

String.prototype.trimEnd()

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

 

유사한 문제

더보기
 

[백준] 2440: 별 찍기 - 3 (javascript)

Link 2440번: 별 찍기 - 3 첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제 www.acmicpc.net 문제 첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는

codingmyoni.tistory.com

 

[백준] 2441: 별 찍기 - 4 (javascript)

Link 2441번: 별 찍기 - 4 첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net 문제 첫째 줄에

codingmyoni.tistory.com

 

[백준] 2442: 별 찍기 - 5 (javascript)

Link 2442번: 별 찍기 - 5 첫째 줄에는 별 1개, 둘째 줄에는 별 3개, ..., N번째 줄에는 별 2×N-1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다. www.acmicpc.net 문제 첫째 줄에는 별 1개, 둘째 줄

codingmyoni.tistory.com

 

[백준] 2445: 별 찍기 - 8 (javascript)

Link 2445번: 별 찍기 - 8 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 문제 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. 입력 > 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

codingmyoni.tistory.com

 

[백준] 2522: 별 찍기 - 12 (javascript)

Link 2522번: 별 찍기 - 12 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 문제 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. 입력 > 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

codingmyoni.tistory.com

 

 


Comment

trimEnd()로 끝의 공백을 제거해주지 않으면 출력 형식이 잘못되었다는 에러가 발생한다.

 

profile

✏️기록하는 즐거움

@nor_coding

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