문제 개요
리스트 안에 어떤 숫자와 그 숫자의 3배에 해당하는 값이 동시에 존재하는지 확인해야 하는 경우가 있습니다. 이럴 때는 리스트를 순회하면서 각 요소에 3을 곱한 값이 리스트 내 다른 요소로 존재하는지 검사하는 함수를 정의하면 됩니다.
예제 코드
아래는 실제 구현 예시입니다.
def check_triple_exists(my_list):
for i in range(len(my_list)):
for j in (my_list[:i] + my_list[i+1:]):
if 3 * my_list[i] == j:
print("The triple exists")
my_list = [67, 34, 89, 67, 90, 15, 5]
print("The list is :")
print(my_list)
check_triple_exists(my_list)
실행 결과
The list is :
[67, 34, 89, 67, 90, 15, 5]
The triple exists
코드 설명
check_triple_exists라는 이름의 함수를 정의하고, 리스트를 매개변수로 전달받습니다.함수 내부에서는 리스트를 순회하면서 각 요소에 3을 곱한 값을 계산한 뒤, 해당 값과 일치하는 다른 요소가 리스트에 존재하는지 확인합니다.
이때 자기 자신과 비교하지 않도록 슬라이싱(
my_list[:i] + my_list[i+1:])을 사용하여 현재 인덱스의 요소를 제외한 나머지 요소들만 검사합니다.일치하는 값을 찾으면 "The triple exists"라는 메시지를 출력합니다.
함수 외부에서는 리스트를 정의하고 콘솔에 출력합니다.
마지막으로 리스트를 인자로 넘겨 함수를 호출하면, 결과가 콘솔에 표시됩니다.
참고 사항
위 예제에서는 조건이 만족되면 메시지만 출력하고 함수가 계속 실행됩니다. 조건을 만족하는 즉시 종료하고 싶다면 return True를 사용하고, 끝까지 찾지 못했을 때 return False를 반환하도록 수정하면 더욱 견고한 코드를 작성할 수 있습니다.