[PS][BOJ/2439]-별 찍기-1

2023. 2. 20. 18:59· PS/Implementation
목차
  1. 문제 설명
  2. 입력
  3. 출력
  4. 문제분석과정

문제 설명

첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제

입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

출력

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

문제분석과정

문제에 대한 설명에 앞서 행과 열에 대한 이해를 해보자. 행(Row) 열(Col)은 2차원 리스트(배열)에서의 핵심 개념이다.
파이썬 2차원 배열을 생성하기 위해서는 대부분 2중 for 문 문법을 사용하게된다. 이때 파이썬을 처음 접하거나 익숙하지않다면,
2 중 for 문의 어떤 것이 행을 생성하고 어떤 것이 열을 생성하는 지 몹시 헷갈리곤한다.

이런 경우 divide 해서 생각하면 매우 이해하기 쉽다. 먼저 for 문이 2개 있다고 생각해보자

for _ in range(4):
    for _ in range(2):

이런 경우 바깥쪽 for문이 먼저 실행된다.
그 후 안쪽 for문이 실행 된다. 자 그럼 확장해서 생각해보자 .

[[0 for _ in range(2)] for _ in range(4)]    

어떤것이 바깥쪽이고 어떤것이 안쪽인가? 위 for 문의 구조는 바로 위 for문의 구조와 작동원리가 일치한다.

자 그럼 이것을 풀어서 생각해보자.
안쪽 for문이 작동을 하고난 후 생성되는 리스트는 [0, 0]
바깥쪽 for문이 작동을 하고난 후 생성되는 리스트는 [0, 0, 0, 0]
안쪽문은 바깥쪽이 돌때마다 작동되므로 아래와 같은 결과가 된다.

  [[0, 0] , [0, 0] , [0, 0] , [0, 0] ]

그럼 어디가 몇행의 몇열이고 크기는 어떻게 될까?
바깥쪽을 관여하는 것이 행이고 안을 관여하는 열이라고 생각하면 이해가 쉬워진다.
바깥쪽 4 ,안 2 이므로 4행 2열 인 배열이 되고 Index는 0부터 카운팅하므로 가장 마지막 원소의 Index 는 3,1 이 된다.

이제 문제해결을 위해 문제의 테스트케이스를 살펴보자

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

바깥 쪽 for문은 몇 번이 반복되고 있나? -> N 번
안 쪽 for문은 몇 번이 반복되고 있나? -> 변한다.
변하는 규칙은 어떻게 되나? -> 1, 2, 3, 4.. 로 1부터 N까지 증가한다.

이 분석을 토대로 소스코드를 작성하면 다음과 같다.

소스코드


n = int(input())

for i in range(1,n+1):
    for j in range (i):
        print('*',end ='')
    print("")

분류

구현(implementation)

문제 원본
소스코드 원본

728x90
반응형

'PS > Implementation' 카테고리의 다른 글

[PS][BOJ/1181]-단어 정렬  (0) 2023.04.04
[PS][BOJ/10812]-바구니 순서 바꾸기  (0) 2023.02.28
[PS][BOJ/10813]-공 바꾸기  (0) 2023.02.23
  1. 문제 설명
  2. 입력
  3. 출력
  4. 문제분석과정
'PS/Implementation' 카테고리의 다른 글
  • [PS][BOJ/1181]-단어 정렬
  • [PS][BOJ/10812]-바구니 순서 바꾸기
  • [PS][BOJ/10813]-공 바꾸기
황빵
황빵
CS,PS, Algorithm
황빵
황빵's World
황빵
전체
오늘
어제
  • 분류 전체보기 (40)
    • PS (19)
      • DP (8)
      • Divide and Conquer (2)
      • Math (2)
      • Geometry (2)
      • Implementation (4)
      • Graphs (1)
    • Dev (20)
      • JAVA (5)
      • Spring (2)
      • DesignPattern (13)
    • Review (0)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • 코딩테스트
  • 구조 패턴
  • 구조패턴
  • 분할정복법
  • Design Pattern
  • 11054
  • 알고리즘
  • java
  • 설계패턴
  • BOJ
  • 객체지향프로그래밍
  • 파이썬
  • dp
  • 반복문
  • 구현
  • ps
  • GOF
  • OOP
  • Python
  • 백준

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
황빵
[PS][BOJ/2439]-별 찍기-1
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.