※ 모든 문제의 저작권은 SW Expert 아카데미에 있습니다. 학습 기록용으로 입니다. 문제시 삭제하겠습니다.
6230. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 7. 흐름과 제어 - 반복 1
다음의 결과와 같이 5명의 학생의 점수에 대해 60 이상일 때 합격 메시지를 출력하고,
60미만일 때 불합격 메시지를 출력하는 프로그램을 만드십시오.
출력_
1번 학생은 88점으로 합격입니다.
2번 학생은 30점으로 불합격입니다.
3번 학생은 61점으로 합격입니다.
4번 학생은 55점으로 불합격입니다.
5번 학생은 95점으로 합격입니다.
[문제 풀이]
# 리스트 생성
scor_lst = [88, 30, 61, 55, 95]
# 리스트 수만큼 반복
for i in range(len(scor_lst)):
# 60점 이상이면 합격처리
if scor_lst[i] >= 60:
print(f'{i+1}번 학생은 {scor_lst[i]}점으로 합격입니다.')
else:
print(f'{i+1}번 학생은 {scor_lst[i]}점으로 불합격입니다.')
6231. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 7. 흐름과 제어 - 반복 2
1부터 100까지의 숫자를 for 문과 range 함수를 이용해 출력하십시오.
출력_
1
2
3
4
5
...
99
100
[문제 풀이]
# 리스트 수만큼 반복
for i in range(1, 101):
print(i)
6234. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 7. 흐름과 제어 - 반복 3
1부터 100사이의 숫자 중 짝수를 for 문을 이용해 다음과 같이 출력하십시오.
출력_
2 4 6 8 10 12 14 16 18 ... 90 92 94 96 98 100
[문제 풀이]
# 리스트 수만큼 반복
# for i in range(2, 101, 2):
# print(i, end=' ')
# 리스트 수만큼 반복
for i in range(1, 101):
if i % 2 == 0:
print(i, end=' ')
6238. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 7. 흐름과 제어 - 반복 4
1부터 100사이의 숫자 중 홀수를 for 문을 이용해 다음과 같이 출력하십시오.
출력_
1, 3, 5, 7, 9, ... 95, 97, 99
[문제 풀이]
lst = []
# 방법1
# 리스트 수만큼 반복
# for i in range(1, 101, 2):
# lst.append(i)
# print(*lst, sep=', ')
# 방법2
# 리스트 수만큼 반복
for i in range(1, 101):
if i % 2 != 0:
lst.append(i)
print(*lst, sep=', ')
6240. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 7. 흐름과 제어 - 반복
1부터 100사이의 숫자 중 3의 배수의 총합을 for 문을 이용해 출력하십시오.
출력_
1부터 100사이의 숫자 중 3의 배수의 총합: 1683
[문제 풀이]
cnt = 0
for i in range(1, 101):
if i % 3 == 0:
cnt += i
print('1부터 100사이의 숫자 중 3의 배수의 총합:',cnt)
6242. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 7. 흐름과 제어 - 반복 6
다음은 10명의 학생들의 혈액형(A, B, AB, O) 데이터입니다.
['A', 'A', 'A', 'O', 'B', 'B', 'O', 'AB', 'AB', 'O']
for 문을 이용하여 각 혈액형 별 학생수를 구하십시오.
출력_
{'A': 3, 'O': 3, 'B': 2, 'AB': 2}
[문제 풀이]
lst = ['A', 'A', 'A', 'O', 'B', 'B', 'O', 'AB', 'AB', 'O']
dic = {}
for i in range(len(lst)):
dic[lst[i]] = lst.count(lst[i])
print(dic)
6244. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 7. 흐름과 제어 - 반복 7
다음은 학생의 점수를 나타내는 리스트입니다.
[85, 65, 77, 83, 75, 22, 98, 88, 38, 100]
while 문과 리스트 객체의 pop()을 이용해 80점 이상의 점수들의 총합을 구하시오.
출력_
454
[문제 풀이]
lst = [85, 65, 77, 83, 75, 22, 98, 88, 38, 100]
total = 0
i = 9
while i != -1:
if lst[i] >= 80:
total += lst.pop(i)
i -= 1
print(total)
6246. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 7. 흐름과 제어 - 반복 8
while문을 이용해 아래와 같이 별(*)을 표시하는 프로그램을 만드십시오.
출력_
*****
****
***
**
*
[문제 풀이]
i = 5
while i != 0:
print('*' * i)
i -= 1
6247. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 7. 흐름과 제어 - 반복 9
while문을 이용해 아래와 같이 별(*)을 표시하는 프로그램을 만드십시오.
출력_
*******
*****
***
*
[문제 풀이]
i, j = 7, 0
while i != -1:
print(' '* j + '*' * i)
i -= 2
j += 1
6249. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 7. 흐름과 제어 - 반복 10
다음의 결과와 같이 어떤 한 양의 정수를 입력하여 그 숫자에 0~9가 몇 번 사용되었는지 표시하십시오.
입력_
11
출력_
0 1 2 3 4 5 6 7 8 9
0 2 0 0 0 0 0 0 0 0
[문제 풀이]
# map으로 받아 하나씩 리스트에 저장
n = list(map(int, input()))
# 리스트 생성
lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
cnt_lst = [0] * 10
# i가 n에 있나 확인
for i in n:
cnt_lst[i] += 1 # 있다면 해당 인덱스 값은 +1
# 앞에 *을 붙여 언팩해 출력
print(*lst)
print(*cnt_lst)
6251. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 7. 흐름과 제어 - 반복 11
for문을 이용해 아래와 같이 별(*)을 표시하는 프로그램을 만드십시오.
출력_
*
**
***
****
*****
[문제 풀이]
j = 4
for i in range(1, 6):
print(' ' * j + '*' * i)
j -= 1
6253. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 7. 흐름과 제어 - 반복 13
다음의 결과와 같이 10진수를 2진수로 변환하는 프로그램을 작성하십시오.
입력_
9
출력_
1001
[문제 풀이]
# 정수형으로 입력
n = int(input())
# 방법1
# 포맷팅을 사용해 출력
# print(format(n, 'b'))
# 방법2
# 나머지
remain = ''
# 무한반복
while 1:
# 2로 나눈 나머지와 마지막 나머지 합산
remain = str(n % 2) + remain
n = n // 2 # //사용해 몫만 바꿈
if n == 1: # 몫이 1이라면
remain = str(n) + remain # 몫과 나머지 합산
print(remain) # 출력
break # 반복 해제