반응형
Solution1. (내 풀이)
문제 설명 순서대로 풀이한 방식이다.
1) 리스트를 순회하면서, 조건에 맞는지 검사한다.
2) 조건에 맞으면 answer list에 추가한다.
3) 리스트를 다 순회한 후에, answer list가 비어있으면 -1을 추가해준다.
4) 정렬하여 return 한다.
def solution(arr, divisor):
answer = []
# 조건에 만족하면 answer에 추가
for i in arr:
if i % divisor == 0:
answer.append(i)
# list를 모두 검사했는데, 조건에 만족하는 것이 없어서 비어있을 경우 -1 넣어주기
if len(answer) == 0:
answer.append(-1)
return sorted(answer)
Solution2.
solution1과 풀이 아이디어는 비슷하지만, 표기 방식이 깔끔하다.
python의 list comprehension을 활용해서, 조건에 맞는 값을 list로 만들어주었다.
여기서 또 인상적이었던 부분은 [ ] or [ ] 인데, 앞에 리스트가 참이 아닐때 (비어있을때) 뒤에 리스트를 만들어준다.
그래서 리스트가 비어있는지 따로 검사하지 않고, 간단하게 조건을 추가할 수 있었다.
def solution(arr, divisor):
answer = [x for x in arr if x % divisor == 0] or [-1]
return sorted(answer)
반응형
'Today I Learned > Python 문제풀이' 카테고리의 다른 글
프로그래머스 lv1. 음양더하기 (zip 사용해서 간단하게) (0) | 2023.08.10 |
---|---|
[프로그래머스] lv0. 더크게 합치기 (0) | 2023.06.09 |
[프로그래머스] lv2. 프린터 (0) | 2020.11.16 |
[프로그래머스] Lv1. 완주하지 못한 선수 (0) | 2020.11.06 |
[프로그래머스] Lv2. 기능개발 (스택/큐) (0) | 2020.10.31 |