goodthings4me.tistory.com
[파이썬기초예제] 네이버 지식인에 올라온 문제를 코딩한 것. 숫자 6개를 키보드로부터 입력받아서 '홀수 찾기, 원하는 숫자가 들어간 수 찾기, 가장 많이 나온 숫자 찾기, 종료' 메뉴를 만들고 각각 실행 결과를 출력한다.
입력된 숫자에서 홀수, 최대 사용된 숫자 등 찾기
본 문제에서 재미있는 점은
- 입력된 6개의 숫자에 대해 0~9 사이 중 어떤 숫자를 입력하면 6개의 숫자에 대해 찾는 것과
- 입력된 6개의 숫자를 문자열로 보고 0~9의 각 숫자가 몇 번 있는지 찾는 부분이다.
[파이썬 소스 코드]
def main():
numbers = []
print('*숫자 6개를 입력하세요. 숫자는 (1~99)까지의 자연수 값만 입력해야 합니다. *')
cnt = 1
while True:
if len(numbers) == 6:
break
try:
num = int(input(f'{cnt}번째 숫자는 ? > '))
if num <= 0 or num > 99:
print('(1~99)까지 값만 입력해야 합니다. 다시 입력하세요.')
continue
numbers.append(num)
cnt += 1
except:
print('숫자를 입력하세요!')
continue
# print(f'\n입력된 숫자 ({", ".join(str(n) for n in numbers)})')
print(f'\n입력된 숫자 {tuple(numbers)}')
while True:
print('-----------------------------')
print('1. 홀수 찾기')
print('2. 원하는 숫자가 들어간 수 찾기')
print('3. 가장 많이 나온 숫자 찾기')
print('4. 종료')
print('-----------------------------\n')
select_no = int(input('번호 선택(1~4): '))
if select_no == 1:
for i in numbers:
if i % 2 != 0:
print(i, end=' ')
print()
if select_no == 2:
num = input('어떤 숫자가 들어간 수를 찾고 싶나요?\n(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)중 입력하세요. : ')
for n in numbers:
if num in str(n):
print(n, end=' ')
print()
if select_no == 3:
nums = [i for n in numbers for i in str(n)]
n_dict = {}
for i in range(10):
n_dict[i] = nums.count(str(i))
for k, v in n_dict.items():
if max(n_dict.values()) == v:
print(f'숫자: {k} - 횟수: {v}')
if select_no == 4:
break
main()
- 입력된 숫자 6개 중 0~9에서 선택한 숫자가 들어간 입력된 숫자를 찾는 부분(select_no == 2)은 6개의 숫자를 str()로 만들어서 찾는 숫자가 포함이 되었는지 확인하고 출력한다.
- 0~9 숫자가 입력된 6개의 숫자에 몇 개씩 있는지 확인하여 최대 사용 횟수의 숫자를 찾는 부분(select_no == 3)에서는 이중 for문을 리스트 컴프리헨션으로 처리한 후 각 숫자의 사용 횟수를 딕셔너리에 추가하고 딕셔너리 값 중 최대값(max(n_dict.values()))과 일치하는 모든 숫자를 찾아 출력한다.
[실행 결과]
*숫자 6개를 입력하세요. 숫자는 (1~99)까지의 자연수 값만 입력해야 합니다. *
1번째 숫자는 ? > 43
2번째 숫자는 ? > 392
(1~99)까지 값만 입력해야 합니다. 다시 입력하세요.
2번째 숫자는 ? > 92
3번째 숫자는 ? > -21
(1~99)까지 값만 입력해야 합니다. 다시 입력하세요.
3번째 숫자는 ? > a2
숫자를 입력하세요!
3번째 숫자는 ? > 21
4번째 숫자는 ? > 24
5번째 숫자는 ? > 44
6번째 숫자는 ? > 2
입력된 숫자 (43, 92, 21, 24, 44, 2)
-----------------------------
1. 홀수 찾기
2. 원하는 숫자가 들어간 수 찾기
3. 가장 많이 나온 숫자 찾기
4. 종료
-----------------------------
번호 선택(1~4): 1
43 21
-----------------------------
1. 홀수 찾기
2. 원하는 숫자가 들어간 수 찾기
3. 가장 많이 나온 숫자 찾기
4. 종료
-----------------------------
번호 선택(1~4): 2
어떤 숫자가 들어간 수를 찾고 싶나요?
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)중 입력하세요. : 4
43 24 44
-----------------------------
1. 홀수 찾기
2. 원하는 숫자가 들어간 수 찾기
3. 가장 많이 나온 숫자 찾기
4. 종료
-----------------------------
번호 선택(1~4): 3
숫자: 2 - 횟수: 4
숫자: 4 - 횟수: 4
-----------------------------
1. 홀수 찾기
2. 원하는 숫자가 들어간 수 찾기
3. 가장 많이 나온 숫자 찾기
4. 종료
-----------------------------
번호 선택(1~4): 4
'코딩 연습 > 파이썬 기초(예제)' 카테고리의 다른 글
과일 야채 단어 찾기 - 파이썬 딕셔너리 연습 (0) | 2022.05.12 |
---|---|
파이썬 sort 함수 직접 만들어보기 (0) | 2022.05.12 |
최대값과 최소값 위치, 배수 합계, 소수 구하기 등 (0) | 2022.05.11 |
파이썬 팩토리얼 (factorial) 구하는 방법 (0) | 2022.05.09 |
판매 데이터 파일(텍스트) 읽고 계산한 후 결과를 저장하기 (0) | 2022.05.09 |
댓글