본문 바로가기
프로그램

[파이썬] 문제 : 나라명, 국민명 입력 받아 딕셔너리에 저장 후 가장 진 이름 찾기

by 오디세이99 2023. 11. 30.
728x90
반응형
입력횟수 그리고 나라이름과 나라국민 이름을 입력받은후 나라이름을 key 국민리름을 value로해서 defaultdict를 만들어주세요.
카운터도 들어가게 부탁드립니다
예를 들어

4
Russia Alex
Korea minsung
Australia Billy
Korea jimin
를 입력시

중복 알파벳이 가장 많은 나라: Australia
각 나라 국민중 이름이 가장 긴 사람 :minsung 7

 

 

'''
4
Russia Alex
Korea minsung
Australia Billy
Korea jimin
'''
defaultdict = {}                              # 딕셔너리 지정
cnt = int(input())                            # 입력수 입력 받기, 문자열을 정수로 변환
max_len_country = ''                          # 가장 긴 나라명 저장 변수
max_len_name = ''                             # 가장 긴 이름 저장 변수
for i in range(cnt):                         # 입력 수 만큼 반복
    country, name = input().split()           # 나라명, 이름 입력 받고, 공백으로 분리해서 변수에 저장
    defaultdict[country] = name               # 나라이름을 key로 하고 이름을 value로 해서 딕셔너리에 저장
    
    if len(max_len_country) < len(country):   # 입력 받은 나라명의 길이가 max나라명보다 길면 max나라명에 저장
        max_len_country = country
        
    if len(max_len_name) < len(name):         # 입력 받은 이름의 길이가 max이름보다 길면 max이름에 저장
        max_len_name = name
    
print('중복 알파벳이 가장 많은 나라:',max_len_country)
print('각 나라 국민중 이름이 가장 긴 사람 :',max_len_name,len(max_len_name))

 

문제 요청대로 하면 위 코드와 같은데, 이렇게 하면 defaultdict가 다음과 같이 됩니다.

Korea가 key가 중복되어 2번쨰 korea가 덮어쓰게 됩니다.

{'Russia': 'Alex', 'Korea': 'jimin', 'Australia': 'Billy'}

 

모든 데이터가 딕셔너리에 저장되도록 하려면

'''
4
Russia Alex
Korea minsung
Australia Billy
Korea jimin
'''
defaultdict = {}
cnt = int(input())
max_len_country = ''
max_len_name = ''
for i in range(cnt):
    country, name = input().split()
    defaultdict[name] = country             # 이름을 key로 하고 나라명의 value해서 딕셔너리에 저장
    
    if len(max_len_country) < len(country):
        max_len_country = country
        
    if len(max_len_name) < len(name):
        max_len_name = name
    
print('중복 알파벳이 가장 많은 나라:',max_len_country)
print('각 나라 국민중 이름이 가장 긴 사람 :',max_len_name,len(max_len_name))

그러면defaultdict에 모든 데이터가 저장됩니다.

{'Alex': 'Russia', 'minsung': 'Korea', 'Billy': 'Australia', 'jimin': 'Korea'}
728x90
반응형

댓글