728x90
📌 문제
2439번: 별 찍기 - 2
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
www.acmicpc.net
📌 내 코드
# 2439 별 찍기 - 2
import sys
input = sys.stdin.readline
n = int(input())
gap = str()
star = str()
for i in range(1, n+1):
gap = ' ' * (n-i)
star += '*'
print(gap, star)
💡 풀이
- n을 입력 받는다.
- 공백을 입력 받을 변수 gap, *를 입력 받을 변수 star을 문자형 (str)으로 선언한다.
- for문을 1~n까지 반복
- 공백은 입력값 n - 채워지는 별 갯수가 되므로 gap = 입력 받는 n - i 이 된다.
- *는 i 값에 따라 하나씩 추가되므로 star에 *를 하나씩 추가한다.
- print()를 통해 gap과 star을 나란히 출력해준다.
- 콤마 (,)를 통해 구분해서 출력해줬는데 파이참에서는 공백이 하나 더 추가된 상태로 나왔고, 백준에서는 출력 방식이 잘못됐다며 컷 당했다
📌 수정 후 코드
# 2439 별 찍기 - 2
import sys
input = sys.stdin.readline
n = int(input())
gap = str()
star = str()
for i in range(1, n+1):
gap = ' ' * (n-i)
star += '*'
print(gap + star)
- 앞 과정은 동일하며, 마지막에 print()를 통해 gap과 star을 +를 통해 더해주고 출력한다.
- print()내에서 문자열 출력 시
- int와 함께 출력 시 콤마 (,)로 구분
- 문자열만 여러 개 출력할 경우 더하기 (+)로도 가능한 것 같다.
📌 정리
파이썬 자료형 중 문자열과 정수형은 제법 이해하고 있다고 생각했는데, 이번 문제에서 막혔어서 자료형 복습도 필요할 것 같다. (그렇게 오늘도 할 일이 추가되었다😂)
적극적인 피드백은 언제나 환영입니다:)