파이썬초보 줄바꿈 출력 질문

조회수 1387회

안녕하세요. 이번주부터 파이썬 시작한 왕초보자입니다.
문제를 풀고있는데, 어려움이 생겨 이곳에 질문을 남기게 되었습니다.
일단,

Q. x = 30 입력했을 때

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

이렇게 나타나야하는 문제입니다.


제가 짜본 코드는

x = int(input("숫자를 입력해주세요 : "))

for i in range(30) :
    if i <= 9:
        print(i+1,end="")
    elif i <=19 :
        print(i+1,end="")
    else :
        print(i+1,end="")

이건데 이렇게 하면

123456789101112131415161718192021222324252627282930

이렇게 나옵니다.

줄바꿈 출력을 어떻게 하면 되는건지 문의드립니다.

1 답변

  • 일단, 줄바꿈을 넣으시려면 print()를 (인자값 없이) 실행하면 되긴 합니다. 아니면 print("원래입력하려는것\n") 하는 식으로 끝에 \n을 넣어주면 됩니다. 하지만 이것까지만 알면 질문자님은 여전히 문제를 해결할 수 없습니다.

    그 문제란 사실은 아마도 이런 것이겠지요.

    1. 정수를 입력받을 것.
    2. 1부터 그 정수까지 쭉 출력할 것.
    3. 단, 숫자 열 개 단위로 줄바꿈을 넣어서 출력할 것.

    그렇다면 좀 다르게 접근해 봅시다. 정수를 입력받으면:

    1. 줄바꿈을 몇 번 해야 하는지 구한다.
      예컨대 29를 입력받았다면, 29 / 10 = 2.9를 올림한 결과 총 3번 줄바꿈해야 한다는 걸 알 수 있음 (왜 반올림이 아니라 올림 인지는 한번 생각해 보세요.)
    2. 예컨대 3번 줄바꿈해야 할 경우, 총 3번 다음을 반복한다:
      x1, x2, x3, ... 하는 식으로 10개의 수를 이어붙인 1줄을 만들어 출력한 뒤 줄바꿈 출력.
      예컨대 2번째 줄을 출력하는 것이라면 11, 12, ..., 20을 출력한 뒤 \n을 출력한다.

    시도해 보세요!


    PS. 뭐 이런 식의 접근법도 있기는 합니다.

    if i % 10 == 0 :
        print()
    
    • 감사합니다! 힌트가 도움이 되서 문제를 해결했어요:) 정말정말 감사해요~ 강연정 2020.12.9 16:16

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)