오늘 프로그래머스 문제를 풀다가 내가 푼 풀이보다 깔끔한 풀이를 발견했는데, 알고 있으면 문제 풀 때 유용할 것 같은 함수가 있어서 포스팅해보려고 한다 !
문제: https://school.programmers.co.kr/learn/courses/30/lessons/42587?language=python3
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 풀이 코드
def solution(priorities, location):
queue = [(i,p) for i,p in enumerate(priorities)]
answer = 0
while True:
cur = queue.pop(0)
if any(cur[1] < q[1] for q in queue):
queue.append(cur)
else:
answer += 1
if cur[0] == location:
return answer
- all ()
- 반복 가능한 자료형(iterable)을 인자로 받음 -> 반복 가능한 자료형: 리스트, 튜플, 집합, 딕셔너리, 문자열 ...
- 인자로 들어온 데이터의 모든 요소가 참이면 True 반환 (1개라도 False 이면 False)
- 인자로 들어온 데이터가 비어있다면 True 반환
-> and 연산자 같은 느낌이라고 생각하면 됨
all 함수의 코드를 보면,
인자로 들어온 데이터를 검사해서 하나라도 참이 아닌 요소가 있다면 False 를 반환하고,
모두 참으로 판정이 되면 True 를 반환한다.
그리고 인자로 들어온 데이터가 비어있는 경우에는,
for 문을 거치지 않고 내려가서 True 를 만나게 되기 때문에 True 반환한다.
# 파이썬 공식 홈페이지의 all 함수 코드
def all(iterable):
for element in iterable:
if not element:
return False
return True
- any()
- 반복 가능한 자료형(iterable)을 인자로 받음 -> 반복 가능한 자료형: 리스트, 튜플, 집합, 딕셔너리, 문자열 ...
- 인자로 들어온 데이터의 요소 중 1개라도 True 이면 True 반환
- 인자로 들어온 데이터의 모든 요소가 False 일 때 False 반환
- 인자로 들어온 데이터가 비어있는 경우 False 반환
-> or 연산자 같은 느낌이라고 생각하면 됨
any 함수의 코드를 보면,
인자로 들어온 데이터를 검사해서 하나라도 참인 요소가 있다면 True 를 반환하고,
모두 거짓으로 판정이 되면 False 를 반환한다.
그리고 인자로 들어온 데이터가 비어있는 경우에는,
for 문을 거치지 않고 내려가서 False 를 만나게 되기 때문에 False 반환한다.
# 파이썬 공식 홈페이지의 any 함수 코드
def any(iterable):
for element in iterable:
if element:
return True
return False
any 는 이런 식으로 사용할 수 있다. (all 도 마찬가지로 비슷하게 사용가능)
# 리스트와 비교할 수를 정의합니다.
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
num = 7
# any()를 사용하여 num이 리스트의 모든 원소보다 큰지 확인합니다.
is_larger = not any(x > num for x in numbers)
# 결과를 출력합니다.
if is_larger:
print(f"{num}는 리스트의 모든 원소보다 큽니다.")
else:
print(f"{num}는 리스트의 일부 원소보다 작거나 같습니다.")
참고
https://docs.python.org/ko/3/library/functions.html
Built-in Functions
The Python interpreter has a number of functions and types built into it that are always available. They are listed here in alphabetical order.,,,, Built-in Functions,,, A, abs(), aiter(), all(), a...
docs.python.org
'Python' 카테고리의 다른 글
[Python/파이썬]python 입력 받기 (1) | 2024.04.12 |
---|