Tesseractjh
한 걸음씩
Tesseractjh
전체 방문자
오늘
어제
  • 전체 (293)
    • IT (30)
      • JavaScript (7)
      • TypeScript (5)
      • React (5)
      • Next.js (3)
      • MongoDB (2)
      • Webpack (2)
      • HTML & CSS (1)
      • Git (0)
      • AWS (1)
      • 기타 (4)
    • 연습장 (259)
      • 백준(BOJ) 문제풀이 (185)
      • 프로그래머스 문제풀이 (61)
      • LeetCode 문제풀이 (2)
      • HackerRank 문제풀이 (7)
      • 낙서장 (3)
      • 기타 (1)
    • 프로젝트 (3)
      • 지뢰피하기 (1)
      • 키릴-라틴 문자 변환기 (1)
      • Flex & Grid (1)
    • 멋쟁이사자처럼 프론트엔드 스쿨 1기 (1)
      • 일기 & 회고록 (1)

인기 글

티스토리

hELLO · Designed By 정상우.
Tesseractjh

한 걸음씩

연습장/백준(BOJ) 문제풀이

[백준 10996] 별 찍기 - 21 with Node.js

2021. 4. 1. 02:29

문제 링크

www.acmicpc.net/problem/10996

 

10996번: 별 찍기 - 21

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

www.acmicpc.net

풀이

const n = parseInt(require("fs").readFileSync("/dev/stdin").toString());
let piece = "*" + " *".repeat(Math.floor((n-1)/2)) + "\n" + " *".repeat(Math.floor(n/2));
for (let i=0; i<n; i++) {
    if (i == n-1) console.log(piece+"\n");
    else console.log(piece);
}

규칙은 두 줄짜리 패턴이 n번 만큼 출력되는 것이다. 두 줄짜리 패턴 내에 별의 개수는 n과 같지만, 그 위치는 위 아래 위 아래 번갈아서 추가된다. 패턴의 첫 번째 줄은 "*" + "*".repeat(Math.floor((n-1)/2))와 같고, 두 번째 줄은 " *".repeat(Math.floor(n/2))와 같다. 이 두 줄을 합한 패턴을 n번만큼 반복하는데, 이 때 마지막으로 출력되는 패턴을 제외하고 나머지는 모두 마지막에 줄바꿈을 더한다.

 

 

이 문제를 풀면서 Python처럼 문자열에 곱셈 연산자를 사용해버렸다. JavaScript에서는 문자열에 곱셈 연산자를 사용하면 NaN을 반환한다. String.prototype.repeat 메서드를 사용하면 문자열을 반복한 값을 얻을 수 있다.

"*"*5 // NaN
"*".repeat(5) // '*****'
"*".repeat(0) // ''

'연습장 > 백준(BOJ) 문제풀이' 카테고리의 다른 글

[백준 2902] KMP는 왜 KMP일까? with Node.js  (0) 2021.04.02
[백준 14501] 퇴사 with Python  (0) 2021.04.02
[백준 10808] 알파벳 개수 with Node.js  (0) 2021.04.01
[백준 1002] 터렛 with Python  (0) 2021.03.31
[백준 5585] 거스름돈 with Node.js  (0) 2021.03.31
    '연습장/백준(BOJ) 문제풀이' 카테고리의 다른 글
    • [백준 2902] KMP는 왜 KMP일까? with Node.js
    • [백준 14501] 퇴사 with Python
    • [백준 10808] 알파벳 개수 with Node.js
    • [백준 1002] 터렛 with Python
    Tesseractjh
    Tesseractjh
    바닐라 자바스크립트를 좋아하는 개발자입니다

    티스토리툴바