728x90
https://www.acmicpc.net/problem/2439
문제)
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
입력)
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력)
첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
풀이)
N=int(input()) #별을 몇개 찍을지 N값으로 입력받는다.
for i in range(1, N+1): #1부터 찍어야 하므로, 범위가 1부터 N+1까지로 지정해준다.출력되는 별의 세로값
print(" "*(N-i)+"*"*i) #공백은 i와 반대되므로, N-i번을 공백에 곱해준 값과 *을 i번 곱해준 값을 더하면 된다.
N이 5라고 가정했을때, i를 1부터 6까지 반복을 한다는 뜻인데
for()문 안에 print()문은 for문이 조건에 만족할때까지 계속 반복되어 실행이 된다.
첫번째 줄은 공백이 4개가 출력이 되고 *이 1개가 출력이 된다. -->" "*(5-1)+"*"*1
두번째 줄은 공백이 3개가 출력이 되고 *이 2개가 출력이 된다. -->" "*(5-2)+"*"*2
두번째 줄은 공백이 2개가 출력이 되고 *이 3개가 출력이 된다. -->" "*(5-3)+"*"*3
두번째 줄은 공백이 1개가 출력이 되고 *이 4개가 출력이 된다. -->" "*(5-4)+"*"*4
두번째 줄은 공백이 0개가 출력이 되고 *이 5개가 출력이 된다. -->" "*(5-5)+"*"*5
이처럼 공백과 *은 서로 반대관계라는 것을 알 수 있다 그래서, "공백"*(N-i)+ "*"*i값으로 출력하면 원하는 값을 얻을 수 있다.
여기서 +는 ""안에 있는 문자열을 합쳐주는 (문자열 연결 연산자)역할이지 숫자 더하기연산자로 쓰이지 않는다.
728x90
'프로그래밍 > Python(파이썬)' 카테고리의 다른 글
[백준] 10952: A+B-5 -python(파이썬) (0) | 2022.04.06 |
---|---|
[백준] 10871: X보다 작은 수 -python(파이썬) (0) | 2022.04.06 |
[백준] 2438: 별 찍기 -1 -python(파이썬) (0) | 2022.04.06 |
[백준] 11022: A+B-8 -python[파이썬] (0) | 2022.04.06 |
[백준] 11021: A+B-7 -python[파이썬] (0) | 2022.04.06 |