티스토리 뷰

반응형




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


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


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



이 문제의 경우 사용자로부터 N을 입력 받고, 입력 받은 N개부터 1까지 감소하는 *을 출력해 삼각형을 만드는 문제입니다.


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


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


for i in range((inp), 0, -1)을 이용해 for문 조건을 작성해줍니다. i는 for문에서 하나씩 감소될 변수이고 i의 범위는 inp부터 1까지이고, 입력받은 inp부터 1까지 감소시킬 것이기에 증가/감소값에 해당하는 마지막 인자값에는 -1을 넣어줍니다.

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


마지막으로 for문 내에 print를 이용해 *을 i만큼 찍어줍니다. Python print는 end값을 따로 설정해주지 않으면 자동으로 한줄을 개행해주기에 따로 개행을 위한 for문을 하나 더 만들지 않아도 됩니다.


여기서 3라인이 가장 중요한데, Python의 경우 문자열을 더하고 곱할 수 있다는 강점과 그로 인한 직관성이 있는 언어입니다.


그렇기에 문자열을 출력하는 print를 반복하는 것이 아니라 단순 문자열에 수를 곱하여 문자열을 반복 출력할 수 있습니다.


이렇게 파이썬의 직관성 있고 짧은 코드를 완성할 수 있습니다.



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


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

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함