nayonngme
[브3/파이썬] 백준2446 - 별 찍기 - 9 본문
https://www.acmicpc.net/problem/2446
문제
예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.
예제 입력 1 복사
5
예제 출력 1 복사
*********
*******
*****
***
*
***
*****
*******
*********
내 코드 (32ms)
n = int(input())
for i in range(n-1):
print(' '*i+'*'*(2*n-2*i-1))
for i in range(1,n+1):
print(' '*(n-i)+'*'*(2*i-1))
다른 코드 (40ms)
n = int(input())
for i in range(n, 0, -1):
print(" " *(n-i) + "*"*(2*i-1))
for i in range(2, n+1):
print(" "*(n-i) + "*"*(2*i-1))
==> 윗 부분의 경우 : 특정값(-1)이 계속 감소하는 for문 사용
==> 아래 부분의 경우 : 겹치는 부분은 이미 위에서 다뤘으므로, 2부터 시작하는 for문을 놓기
틀린 이유 분석
print(''(n-i)+' '(i-1)+'' ... 처럼 가운데 별은 고정하고 푸는 방식을 고수했더니 계속 틀렸다.
코드를 고쳐봐도 계속 틀리길래 지문에 나온 2*n-1 에서 힌트를 얻어서 접근법을 바꿔봤다.
내 코드가 시간이 빠르긴해도 식이 복잡하니 다른 분들이 사용하신 코드를 사용하는 게 좋은거 같다.
'Algorithm > 백준' 카테고리의 다른 글
[실버3/파이썬] 백준 15650 - N과 M (2) (0) | 2024.11.12 |
---|---|
[브론즈3/파이썬] 백준 2455 - 지능형 기차 (0) | 2024.07.03 |
[파이썬/브3] 백준 31868 - 수박 게임 (0) | 2024.06.19 |
[파이썬/백준2566] 최댓값 - 이중 for문 (0) | 2024.05.26 |
[파이썬/백준2753] 윤년 - if문 (0) | 2024.05.26 |
Comments