리스트와 기준 값(확인 값)이 주어졌을 때, 리스트에 포함된 모든 값이 기준 값보다 큰지 판별하는 파이썬 프로그램을 만들어 보겠습니다. 조건을 만족하면 "Yes"를, 하나라도 기준 값보다 작거나 같은 요소가 있으면 "No"를 출력하는 방식으로 동작합니다.
예제
입력 : A=[10, 20, 30, 40, 50] 기준 값 = 20 출력 : No 입력 : A=[10, 20, 30, 40, 50] 기준 값 = 5 출력 : Yes
알고리즘
1단계: 사용자 입력으로 리스트를 생성한다. 2단계: 기준 값을 입력받는다. 3단계: for 반복문으로 리스트를 순회하며 각 요소를 기준 값과 비교한다. 4단계: 비교가 끝나면 결과를 출력하고 종료한다.
예제 코드
def checknumber(A, val):
# 리스트를 순회하며 기준 값과 비교
for i in A:
if val >= i:
return False
return True
# 드라이버 코드
A = list()
n1 = int(input("리스트의 크기를 입력하세요 ::"))
print("리스트의 요소를 입력하세요 ::")
for i in range(int(n1)):
k = int(input())
A.append(k)
val = int(input("기준 값을 입력하세요 "))
if checknumber(A, val):
print("모든 값이", val, "보다 큽니다")
else:
print("값 중에", val, "보다 크지 않은 값이 있습니다")
실행 결과
리스트의 크기를 입력하세요 ::5 리스트의 요소를 입력하세요 :: 10 20 30 40 50 기준 값을 입력하세요 10 값 중에 10 보다 크지 않은 값이 있습니다
반면 기준 값을 9로 입력하면 리스트의 모든 요소가 9보다 크므로 아래와 같은 결과가 출력됩니다.
리스트의 크기를 입력하세요 ::6 리스트의 요소를 입력하세요 :: 10 20 30 40 50 60 기준 값을 입력하세요 9 모든 값이 9 보다 큽니다
코드 설명
checknumber() 함수는 리스트를 처음부터 끝까지 순회하면서, 각 요소가 기준 값 이하인 경우 즉시 False를 반환합니다. 순회가 끝날 때까지 조건에 걸리지 않았다면 모든 요소가 기준 값보다 크다는 의미이므로 True를 반환합니다. 조건에 맞지 않는 요소를 발견하는 즉시 함수를 종료하기 때문에 불필요한 비교 연산을 줄여 실행 효율도 높아집니다.
all() 함수를 활용한 더 간결한 방법
파이썬의 내장 함수 all()을 사용하면 위 로직을 한 줄로 표현할 수 있습니다.
A = [10, 20, 30, 40, 50]
val = 5
result = all(x > val for x in A)
print("Yes" if result else "No") # Yes
all() 함수는 이터러블의 모든 요소가 참일 때만 True를 반환하므로, 제너레이터 표현식과 함께 사용하면 가독성이 좋고 효율적인 코드를 작성할 수 있습니다. 실무에서는 반복문을 직접 작성하는 것보다 이 방식이 더 널리 권장됩니다.