본문 바로가기

Python/Python-코드업 100제

Python 코드업 100제 [12, 기초-반복실행구조]

[71]
정수가 순서대로 입력된다.
(단, 개수는 알 수 없다.)

0이 아니면 입력된 정수를 출력하고, 0이 입력되면 출력을 중단해보자.
while( ), for( ) 등의 반복문을 사용할 수 없다.

입력
정수가 순서대로 입력된다.

7 4 2 3 0 1 5 6 9 10 8

출력
입력된 정수를 줄을 바꿔 하나씩 출력하는데, 0이 입력되면 종료한다. (0은 출력하지 않는다.)

7
4
2
3

Tip::
원래 이 문제는 goto문을 이용해 풀도록 유도한 것인데 파이썬에서는 goto문을 제공하지 않으므로 함수를 이용하여 풀도록 한다.

  1. 파이썬에서는 do~while()과 같은 반복문도 제공하지 않는다.
  2. 파이썬에서는 함수를 이용하여 goto문처럼 사용하면 된다.
 

 

더보기
listLike = list(map(int, input().split()))
i = 0
def whileLike(listLike, i):
    if listLike[i] != 0:
        print(listLike[i])
    else:
        return
    i += 1
    whileLike(listLike, i)

 

whileLike(listLike, i)

 

[[72]

n개의 정수가 순서대로 입력된다.
(단 n의 최대 개수는 알 수 없다.)

n개의 입력된 정수를 순서대로 출력해보자.
while( ), for( ) 등의 반복문을 사용할 수 없다.

입력
첫 줄에 정수의 개수 n이 입력되고, 두 번째 줄에 n개의 정수가 공백을 두고 입력된다.

5  
1 2 3 4 5  

출력
n개의 정수를 한 개씩 줄을 바꿔 출력한다.

1  
2  
3  
4  
5  

Tip::

  1. 리스트의 메소드인 reverse()는 내부 원소들을 거꾸로 재정렬해준다.

 

더보기
intInit = int(input())
listLike = list(map(int, input().split()))
i = 0

 

def forLike(listLike, intInit, i):
   
    if intInit > i:
        print(listLike[i])
    else:
        return
    i += 1
    forLike(listLike, intInit, i)

 

forLike(listLike, intInit, i)

 

[73]

정수가 순서대로 입력된다.
(단, 개수는 알 수 없다.)

0이 아니면 입력된 정수를 출력하고, 0이 입력되면 출력을 중단해보자.

입력
정수가 순서대로 입력된다.

7 4 2 3 0 1 5 6 9 10 8

출력
입력된 정수를 줄을 바꿔 하나씩 출력하는데, 0이 입력되면 종료한다. (0은 출력하지 않는다.)

7
4
2
3

Tip::
반복문 for() 배우러 가기

 

더보기
forList = map(int, input().split())
for i in forList:
    if i == 0:
        break
    else:
        print(i)

 

[74]

정수(1 ~ 100) 1개가 입력되었을 때 카운트다운을 출력해보자.

입력
정수 1개가 입력된다. (1 ~ 100)

5

출력
1씩 줄이면서 한 줄에 하나씩 1이 될 때까지 출력한다.

5
4
3
2
1

Tip::
반복문 for() 배우러 가기

 

더보기
intCount = int(input())
for i in range (1, intCount+1):
    print(intCount)
    intCount -= 1

 

[75]

정수(1 ~ 100) 1개가 입력되었을 때 카운트다운을 출력해보자.

입력
정수 1개가 입력된다. (1 ~ 100)

5

출력
1씩 줄이면서 한 줄에 하나씩 1이 될 때까지 출력한다.

4
3
2
1
0

Tip::
반복문 for() 배우러 가기

 

더보기
intCount = int(input())
for i in range (1, intCount+1):
    print(intCount-1)
    intCount -= 1

 

[76]

영문자(a ~ z) 1개가 입력되었을 때 그 문자까지의 알파벳을 순서대로 출력해보자.

입력
영문자 1개가 입력된다. (a ~ z)

f

출력
a부터 입력한 문자까지 순서대로 공백을 두고 출력한다.

a b c d e f

Tip::
반복문 for() 배우러 가기

  1. 아스키 코드를 이용하면 된다.
    • ord() : 문자를 아스키 코드의 10진수로 변환 ex) 'a' >> 97
    • chr() : 10진수의 아스키 코드를 문자로 변환 ex) 97 >> 'a'
  2. print() 함수의 두번째 파라미터인 end는 줄바꿈을 없애줄 수 있다. default값이 줄바꿈이다.

 

더보기
charInput = ord(input())
for i in range(97, charInput+1):
    print(chr(i), end=" ")
 

[77]

정수(0 ~ 100) 1개를 입력받아 0부터 그 수까지 순서대로 출력해보자.

입력
정수 1개가 입력된다. (0 ~ 100)

4

출력
0부터 그 수까지 줄을 바꿔 한 개씩 출력한다.

0
1
2
3
4

Tip::
반복문 while() 배우러 가기

  1. for()로 푸는 것이 더 간단하나 while()문의 예를 보여드리기 위해 while로 풀었음.
 
더보기
#1번답안 for문
intInput = int(input())
for i in range(0, intInput+1):
    print(i)

 

#2번답안 while문
intInput = int(input())
i = 0
while(1):
    if i < intInput+1:
        print(i)
        i += 1
    else:
        break