728x90
2438번
문제
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
예제 입력 1
5
예제 출력 1
*
**
***
****
*****
문제 풀이
N = int(input())
for i in range(1,N+1):
print(i*'*')
반복문을 활용한 단순 구현 문제입니다.
1부터 N까지 *을 출력해야 하기에 range에 유의할 필요가 있습니다.
2439번
문제
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
예제 입력 1
5
예제 출력 1
*
**
***
****
*****
문제 풀이
N = int(input())
for i in range(1,N+1):
print(" "*(N-i)+i*'*')
for 반복문을 활용하여 공백과 *을 출력하는 풀이입니다.
아래와 같이 정렬 기능을 활용하면 보다 간단하게 풀 수 있습니다.
N = int(input())
for i in range(1,N+1):
output = i * '*'
print(output.rjust(N))
string.rjust(문자열 길이, 공백 텍스트) >> 오른쪽 정렬
string.ljust(문자열 길이, 공백 텍스트) >> 왼쪽 정렬
string.center(문자열 길이, 공백 텍스트) >> 가운데 정렬
*금번 문제처럼 공백에서 사용할 텍스트는 생략 가능하며, 만약 설정하더라도 공백이 없다면 출력되지 않습니다.
output = '***'
print(output.rjust(5,'.')) #오른쪽 정렬
print(output.ljust(5,'.')) #왼쪽 정렬
print(output.center(5,'.')) #가운데 정렬
--------------------------------
..***
***..
.***.
저처럼 파이썬을 독학하시는 분들에게 도움이 되길 바라며,
혹 더 좋은 방법이 있거나 오류가 있다면 편하게 말씀 부탁드립니다.
728x90