티스토리 뷰

반응형




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


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


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



이 문제의 경우 사용자로부터 N을 입력 받고, 입력 받은 N만큼 1씩 증가하는 별을 찍으면 되는 문제입니다.


1
2
3
4
5
6
7
8
9
10
11
inp = int(input())
for i in range(1,(inp+1)):
    print("*" * i)
 
'''
inp = int(input())
for i in range(1, (inp+1)):
    for j in range(1, (i+1)):
        print("*",end="")
    print()
'''
cs


저는 이 문제를 2개의 방법으로 코딩했는데, 1~3라인의 코드가 파이썬의 장점을 살린 코드입니다.


먼저 6라인부터 10라인까지의 코드를 살펴보면 C나 기타 언어로 작성할 수 있는 코드입니다.


이중 for문을 이용해 *를 반복 출력한 후 한줄 개행해주는 코드로, 파이썬의 강점을 살리지 못한 코드입니다.


하지만 1~3라인의 코드는 파이썬으로 할 수 있는 문자열 반복 출력을 짠 코드입니다.


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


for i in range(1, (inp+1)) 을 이용해 for문 조건을 작성해줍니다. i는 for문에서 하나씩 증가될 변수이고, i의 범위는 1부터 inp까지입니다.

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


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


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


그렇기에 문자열 출력하는 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
글 보관함