[백준 2446번] 별 찍기 -9 -python
2023. 1. 29. 19:13ㆍcode/[백준] python
2446번
https://www.acmicpc.net/problem/2446
문제
예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.
🐰 나의 코드
n=int(input())
for i in range(n,0,-1):
print((n-i)*" "+(2*i-1)*"*")
for j in range(2,n+1):
print((n-j)*" "+(2*j-1)*"*")
문제의 출력 2xN-1번째에서 힌트를 얻었다.
처음에는 center을 이용해서 문제를 해결하려 했는데, 출력의 형태가 잘못됐다 그래서 애 좀 먹었다.
어쨌든 이 코드는, 입력받는 숫자를 n에다 저장한 후 두 번의 for문을 통해 출력이 된다.
먼저 첫번째 for문에서는 n에서 1까지 내림차순으로 숫자가 내려가도록 했다.
for문에서 나오는 숫자 i는 처음 입력받은 n에서 i를 뺀 만큼을 공백을 가지도록 출력한 후, 그 뒤에 바로 2*i-1개의 별이 출력되도록 했다.
마찬가지로 다음에 오는 for문에서는 오름차순으로 숫자가 올라가게끔 하고, 출력 방식은 첫번째 for문의 print문과 유사하게 작성했다.
👑 다른 사람의 코드
N=int(input())
for i in range(1,2*N):
print(' '*(min(i,2*N-i)-1)+'*'*(1+2*(N-min(2*N-i,i))))
2N과 min을 활용하여 for문 하나로 출력하도록 했다.
이렇게도 풀 수 있군...
'code > [백준] python' 카테고리의 다른 글
[백준 2407번] 조합 - python (0) | 2023.01.28 |
---|---|
[백준 1929번] 소수 구하기 - python (0) | 2023.01.27 |
[백준 14652번] 나는 행복합니다~ - python (0) | 2023.01.25 |
[백준 1550번] 16진수 - python (0) | 2023.01.20 |
[백준 4153번] 직각삼각형 - python (1) | 2023.01.20 |