✏️기록하는 즐거움
article thumbnail

Link

 

2445번: 별 찍기 - 8

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

www.acmicpc.net

 

문제

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

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

| 예제 입력

5

| 예제 출력

*        *
**      **
***    ***
****  ****
**********
****  ****
***    ***
**      **
*        *

 

제출

const fs = require("fs");

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

for (let i = 1; i <= input * 2 - 1; i++) {
  if (i <= input) {
    console.log("*".repeat(i) + " ".repeat((input - i) * 2) + "*".repeat(i));
  } else {
    console.log(
      "*".repeat(i - (i - input) * 2) +
        " ".repeat((i - input) * 2) +
        "*".repeat(i - (i - input) * 2)
    );
  }
}

 

풀이과정

이전 문제들처럼 규칙을 찾으면 되는 문제이다.

 

* → 공백   *  의 순서로 출력되고 있고, 가운데를 기준으로 상하반전되어있다.

따라서 if문으로 1번 줄부터 5번 줄까지 출력과, 6번 줄부터 9번 줄까지의 출력을 나눴다. 

 

# 1번 줄 ~ 5번 줄

*의 개수 (왼쪽) 공백의 개수 *의 개수 (오른쪽)
1, 2, 3, 4, 5로 늘어남 반으로 나눴을 때, (input-i)개가 2개씩 존재 1, 2, 3, 4, 5로 늘어남

# 6번 줄 ~ 9번 줄

*의 개수 (왼쪽) 공백의 개수 *의 개수 (오른쪽)
4, 3, 2, 1로 줄어듬 2, 4, 6, 8로 늘어남 4, 3, 2, 1로 줄어듬

위에서 6번 줄 ~ 9번 줄은 1번 줄 ~ 4번 줄을 반전시킨 것이기 때문에

공백은 1번 줄~ 4번 줄과 반대로 (i-input) * 2개 존재하고, * 은 각각 i에서 *의 개수를 빼준 만큼 존재한다.

 

개념

String.prototype.repeat()

  • 문자열을 지정한 횟수만큼 반복해 새로운 문자열을 반환한다.
  • 반복 횟수는 0보다 큰 양의 정수이며, 최대 문자열 크기를 넘으면 RangeError 발생

 

유사한 문제

 

[백준] 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


Comment

단순히 존재하는 규칙에 대해서 코드로 풀어내기만 했는데 다른 접근으로 풀어낸 사람의 풀이를 보고 대단하다고 생각했다.

다양하게 생각하는 개발자로 거듭나 보자 화이팅✨

 

profile

✏️기록하는 즐거움

@nor_coding

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