HelloMinchan
처음처럼
HelloMinchan
LinkedIn
전체 방문자
오늘
어제
  • 분류 전체보기 (306)
    • Backend (4)
      • NestJS (1)
      • Express (1)
      • Spring (2)
    • Infrastructure (1)
      • AWS (1)
    • Frontend (1)
      • Next.js (1)
    • Language & Runtime (4)
      • Java (2)
      • Node.js (2)
    • Computer Science (8)
      • Computer Networks (3)
      • Operating Systems (4)
      • OOP (1)
    • 독서 (4)
      • 데이터 중심 애플리케이션 설계 (3)
      • 객체지향의 사실과 오해 (1)
    • 회고 (4)
      • Project (2)
      • Career (2)
    • Deprecated (280)

채널

  • GitHub
  • LinkedIn

최근 글

태그

  • 백준Python
  • Database
  • 백준
  • 프로그래머스Python
  • Algospot
  • programmers
  • 백엔드
  • 백준Go
  • 백준C++
  • 프로그래머스
  • 프로그래밍
  • back-end
  • 알고스팟Python
  • front-end
  • Baekjoon Online Judge
  • 코딩
  • 알고스팟
  • 개발자
  • 데이터베이스
  • 프로그래머스C++

최근 댓글

인기 글

hELLO
HelloMinchan

처음처럼

[Baekjoon Online Judge] 백준 2446번 별 찍기 - 9(Python)
Deprecated

[Baekjoon Online Judge] 백준 2446번 별 찍기 - 9(Python)

2020. 3. 14. 11:48

© 2020 All Rights Reserved. 주식회사 스타트링크

[Baekjoon Online Judge] 백준 2446번 별 찍기 - 9

(Python)

(글쓴날 : 2020.03.14)

 


* Baekjoon Online Judge, 백준 2446번 문제 Python 언어 풀이입니다.

* 소스 코드의 저작권은 글쓴이에게 있습니다.


 

 

백준 2446번 별 찍기 - 9


1) 문제

문제 링크 : https://www.acmicpc.net/problem/2446

 

2446번: 별 찍기 - 9

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

www.acmicpc.net


2) 풀이 과정

규칙을 찾아 별을 출력하는 문제입니다.

규칙은 전체 행의 정중앙을 1로 잡고 위아래로 2씩 N-1번 증가하여 모래시계 형태로 커지는 규칙입니다.

저의 경우, 가운데를 기준으로 가운데를 포함한 위의 경우와 나머지 아래의 경우로 문제를 분리하여 접근하였습니다.

 

위의 경우엔 최상단 행의 숫자를 먼저 구해 2씩 점차 감소시키며 여백을 1씩 증가시키는 반복문을 구현하였고,

아래의 경우엔 반대로 3부터 2씩 증가시키고 여백은 1씩 감소하는 반복문을 구현하여 문제를 해결하였습니다.


3) 코드

 

* Python 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import sys
input = sys.stdin.readline
 
N = int(input())
maxLen = N * 2 - 1
empty = 0
 
for i in range(maxLen, 0, -2):
    for j in range(0, empty):
        print(" ", end="")
    for k in range(i):
        print("*", end="")
    print()
    empty += 1
 
empty -= 2
 
for i in range(3, maxLen + 1, +2):
    for j in range(0, empty):
        print(" ", end="")
    for k in range(i):
        print("*", end="")
    print()
    empty -= 1

 

저작자표시 비영리 변경금지 (새창열림)

'Deprecated' 카테고리의 다른 글

[Baekjoon Online Judge] 백준 14681번 사분면 고르기(Python)  (3) 2020.03.17
[Baekjoon Online Judge] 백준 10996번 별 찍기 - 21(Python)  (0) 2020.03.14
[Baekjoon Online Judge] 백준 2523번 별 찍기 - 13(Python)  (0) 2020.03.14
[Baekjoon Online Judge] 백준 10039번 평균 점수(Python)  (0) 2020.03.14
[CSS] CSS 초기화(Reset) 코드 모음  (0) 2020.03.12
    'Deprecated' 카테고리의 다른 글
    • [Baekjoon Online Judge] 백준 14681번 사분면 고르기(Python)
    • [Baekjoon Online Judge] 백준 10996번 별 찍기 - 21(Python)
    • [Baekjoon Online Judge] 백준 2523번 별 찍기 - 13(Python)
    • [Baekjoon Online Judge] 백준 10039번 평균 점수(Python)
    HelloMinchan
    HelloMinchan
    Though you should not fear failure, You should do your very best to avoid it.

    티스토리툴바