728x90
반응형
문제 :
fruits_a, fruit_b에 각자 자신이 원하는 과일을 3개 이상 입력한 후 두 리스트에 공통적으로 들어 있는 과일을 출력하는 프로그램을 작성하여라. 단, upper()나 lower() 함수를 사용하여 대소문자를 구별하지 않으며 공통된 과일이 없을 경우 “중복되는 과일이 존재하지 않습니다.” 라는 메세지를 출력하여라. 이 문제를 print, input, 조건문, 반복문, list만을 사용해서 작성해주세요. 파이썬에서 기본으로 제공하는 함수는 사용하지 말고요. |
fruits_a = [] # 입력 받을 과잃 리스트
fruits_b = []
for i in range(2): # 2명 입력 받기 위한 반복문
while True: # 과일 3개 이상 입력을 위한 무한 반복. break로 빠져나감
tmp_lst = input(f"{i}번 과일입력(3개 이상. 예:사과,배,귤)").split(',') # 입력 받고, split()으로 분리
if len(tmp_lst) >= 3: # 3개 이상 이면 while 반복문 빠져나감
break
if i == 0: # 첫번째는 fruits_a
fruits_a = tmp_lst
else: # 두번째는 fruits_b
fruits_b = tmp_lst
common_lst = [] # 공통되는 과일을 담을 리스트 변수 선언
for a_e in fruits_a: # 첫번째 과일들을 하나씩 꺼냄
if a_e in fruits_b: # in 으로 두번째 과일들에 있는지 확인
common_lst.append(a_e) # 있다면 공통된 과일이기 때문에 추가
if len(common_lst) == 0: # 곹통괸 과일이 없으면 리스트의 len()이 0
print('중복되는 과일이 존재하지 않습니다.')
else:
print('중복과일:',common_lst)
문제의 조건에 for 등을 사용하라는 조건이 있어서 위와 같이 하지만
다음과 같이 간단히 중복 요소를 찾을 수 있습니다.
common_lst = list(set(fruits_a) & set(fruits_b)) # set() 집합으로 만들어 &(and) 조건 확인하면 공통된 요소 찾음
print(common_lst)
728x90
반응형
'프로그램' 카테고리의 다른 글
[파이썬] 문제 : 369 게임 (0) | 2024.05.23 |
---|---|
[파이썬] 문제 : 터틀(turtle)로 사각형 3개 그리기 (0) | 2024.05.23 |
[파이썬] 문제 : 가변 인수(*) 사용해서 가장 큰 값 찾기 (0) | 2024.05.21 |
[파이썬] 문제 : 리스트에서 원하는 값 찾기 (0) | 2024.05.21 |
[파이썬] 문제 : 리스트 값들의 평균 구하기 (0) | 2024.05.21 |
댓글