티스토리 뷰

반응형




이번 포스팅은 백준 알고리즘 사이트의 2439번 별찍기-2 문제를 Python 언어로 코딩해보도록 하겠습니다. 아래 url로 접속하시면 문제를 볼 수 있습니다.


https://www.acmicpc.net/problem/2439


지난 백준 알고리즘 포스팅과 같은 단계로 for문 사용해보기 단계의 문제입니다.



이 문제의 경우 사용자로부터 N을 입력 받고, 입력 받은 만큼의 행이 생기고, 공백을 포함하여 별로 삼각형을 만드는 문제입니다.


문제에서 생각해볼 것은 먼저 어떻게 나눠서 코딩을 해 볼 것인가, 어떻게 나누어 몇개의 for문을 어떻게 사용할 것인가를 생각해보시면 도움이 될 것 같습니다.


1
2
3
4
inp = int(input())
for i in range(1,(inp+1)):
    print(" " * (inp - i), end="")
    print("*" * i)
cs


먼저 변수 inp을 지정해 int(input())을 이용하여 사용자로부터 정수형의 입력을 받습니다.


for i in range(i, (inp+1))을 이용해 for문의 조건을 작성해줍니다.

(Python의 for문 이용시 range는 첫째 인자로 초기값, 둘째 인자로 종료값, 여기선 없지만 마지막 인자로 증가값을 적용합니다. 또한 두번째 인자인 종료값의 경우 해당 값을 포함하지 않기에 필요한 종료값보다 하나 더 크게/작게 조건을 작성해야 합니다.)


for문 내에는 두개의 print문이 있는데 첫 print문은 공백을 출력하고 두번째는 *을 출력합니다.


자세히 보면 공백을 출력하는 print의 경우 " "에 (input-i) 만큼 곱해서 (input-i)의 크기만큼 공백을 출력해주고, print 끝에 end=""를 더해 print의 기본 설정인 개행을 막아줍니다.

(Python은 end 뒤에 따로 설정을 해주지 않으면 자동으로 개행을 해줍니다.)


다음 print문은 *에 i만큼 곱해서 *을 i번만큼 출력해줍니다. *을 출력하고 나면 개행이 필요하기에 따로 end 설정을 해주지 않았습니다.


파이썬의 경우 문자열을 더하고 곱할 수 있다는 강점이 있고, 직관성이 있습니다. 그렇기에 문자열을 출력하는 print를 반복하는 것이 아니라 단순 문자열에 수를 곱하여 문제열을 반복 출력할 수 있습니다.


또한 print는 자동으로 개행이 되기에 개행을 위한 for문이 따로 필요하지 않습니다.


별을 출력하는 예제를 파이썬으로 푸는데 다른언어처럼 풀 수도 있습니다. 혹시 궁금하신 분들은 아래 포스팅을 참고해주세요.



하지만 파이썬을 사용했을 때 쓸 수 있는 강점을 살려서 코딩하는 것이 좋기에 그를 연습하는 것이 중요하다고 생각합니다.



다음 포스팅에서는 다음 단계의 코드를 보도록 하겠습니다,


다음 포스팅에서 봐요 :))


반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함