Q71 ▶ 정수가 순서대로 입력된다.
(단, 개수는 알 수 없다.)
0이 아니면 입력된 정수를 출력하고, 0이 입력되면 출력을 중단해보자.
while( ), for( ) 등의 반복문을 사용할 수 없다.
Tip
원래 이 문제는 goto문을 이용해 풀도록 유도한 것인데 파이썬에서는 goto문을 제공하지 않으므로 함수를 이용하여 풀도록 한다.
파이썬에서는 do~while()과 같은 반복문도 제공하지 않는다.
파이썬에서는 함수를 이용하여 goto문처럼 사용하면 된다.
# 입력
# 정수가 순서대로 입력된다.
# 7 4 2 3 0 1 5 6 9 10 8
# 출력
# 입력된 정수를 줄을 바꿔 하나씩 출력하는데, 0이 입력되면 종료한다. (0은 출력하지 않는다.)
# 7
# 4
# 2
# 3
# define : 정의하다
# 재귀함수
def goto(array, i):
if array[i] == 0:
return
print(array[i])
i += 1
goto(array, i)
array = list(map(int, input().split()))
goto(array, i = 0)
Q72 ▶ n개의 정수가 순서대로 입력된다.
(단 n의 최대 개수는 알 수 없다.)
n개의 입력된 정수를 순서대로 출력해보자.
while( ), for( ) 등의 반복문을 사용할 수 없다.
Tip
리스트의 메소드인 reverse()는 내부 원소들을 거꾸로 재정렬해준다.
# 입력
# 첫 줄에 정수의 개수 n이 입력되고, 두 번째 줄에 n개의 정수가 공백을 두고 입력된다.
# 5
# 1 2 3 4 5
# 출력
# n개의 정수를 한 개씩 줄을 바꿔 출력한다.
# 1
# 2
# 3
# 4
# 5
#1
print('== #1 ==')
def goto(number, n, i):
if i == n: return
print( number[i] )
i += 1
goto(number, n, i)
goto(number, n, 0)
#2 reverse 사용
print('== #2 ==')
number.reverse()
def goto(number, n):
print(number[n])
n -= 1
if n == -1: return
goto(number, n)
goto(number, n-1)
Q73 ▶ 정수가 순서대로 입력된다. (단, 개수는 알 수 없다.)
0이 아니면 입력된 정수를 출력하고, 0이 입력되면 출력을 중단해보자.
# 입력
# 정수가 순서대로 입력된다.
# 7 4 2 3 0 1 5 6 9 10 8
# 출력
# 입력된 정수를 줄을 바꿔 하나씩 출력하는데, 0이 입력되면 종료한다. (0은 출력하지 않는다.)
# 7
# 4
# 2
# 3
#1
number = map(int, input().split())
for element in number:
if element is not 0:
print(element)
continue # continue를 만나면 아래의 구문은 실행하지 않고 다음 반복으로 넘어간다.
break
#2
number = map(int, input().split())
for value in number:
if value == 0: break
print( value )
Q74 ▶ 정수(1 ~ 100) 1개가 입력되었을 때 카운트다운을 출력해보자.
# 입력
# 정수 1개가 입력된다. (1 ~ 100)
# 5
# 출력
# 1씩 줄이면서 한 줄에 하나씩 1이 될 때까지 출력한다.
# 5
# 4
# 3
# 2
# 1
count = int(input())
for i in range(count, 0, -1):
print( i )
Q75 ▶ 정수(1 ~ 100) 1개가 입력되었을 때 카운트다운을 출력해보자.
# 입력
# 정수 1개가 입력된다. (1 ~ 100)
# 5
# 출력
# 1씩 줄이면서 한 줄에 하나씩 1이 될 때까지 출력한다.
# 4
# 3
# 2
# 1
# 0
count = int(input())
for i in range(count-1, -1, -1):
print( i )
Q76 ▶ 영문자(a ~ z) 1개가 입력되었을 때 그 문자까지의 알파벳을 순서대로 출력해보자.
Tip
아스키 코드를 이용하면 된다.
ord() : 문자를 아스키 코드의 10진수로 변환 ex) 'a' >> 97
chr() : 10진수의 아스키 코드를 문자로 변환 ex) 97 >> 'a'
print() 함수의 두번째 파라미터인 end는 줄바꿈을 없애줄 수 있다. default값이 줄바꿈이다.
# 입력
# 영문자 1개가 입력된다. (a ~ z)
# f
# 출력
# a부터 입력한 문자까지 순서대로 공백을 두고 출력한다.
# a b c d e f
converter = ord(input())
for i in range(97, converter+1):
print( chr(i), end=' ' )
Q77 ▶ 정수(0 ~ 100) 1개를 입력받아 0부터 그 수까지 순서대로 출력해보자.
Tip
for()로 푸는 것이 더 간단하나 while()문의 예를 보여드리기 위해 while로 풀었음.
# 입력
# 정수 1개가 입력된다. (0 ~ 100)
# 4
# 출력
# 0부터 그 수까지 줄을 바꿔 한 개씩 출력한다.
# 0
# 1
# 2
# 3
# 4
count = int(input())
i = 0
while count >= 0:
print( i )
i += 1
count -= 1
'python' 카테고리의 다른 글
13. 기초 - 종합 (코드업 기초 100제) (0) | 2022.02.09 |
---|---|
11. 기초 - 조건문/선택 실행 구조 (코드업 기초 100제) (0) | 2022.02.09 |
10. 기초 - 삼항연산 (코드업 기초 100제) (0) | 2022.01.30 |
9. 기초 - 비트단위 논리연산 (코드업 기초 100제) (0) | 2022.01.30 |
8. 기초 - 논리연산 (코드업 기초 100제) (0) | 2022.01.30 |