| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
Tags
- 분할정복
- Java
- Summer/Winter Coding(~2018)
- dfs
- 1932
- 다익스트라
- BFS
- 토마토
- 조합
- DP
- 그래프
- 백준
- 정수 삼각형
- 정렬
- Lv2
- 그래프탐색
- 프로그래머스
- 알고리즘
- 구현
- 월간 코드 챌린지 시즌1
- 깃허브 프로필
- 완전탐색
- GIT
- 깃허브
- 알고리즘고득점Kit
- 이코테
- Python
- 프로그래멋
- 15686
- 자바
Archives
- Today
- Total
갱스터하우스
[Python] Lv1.나누어 떨어지는 숫자 배열 본문
https://programmers.co.kr/learn/courses/30/lessons/12910
코딩테스트 연습 - 나누어 떨어지는 숫자 배열
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하
programmers.co.kr
문제 설명
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
제한 조건
- arr은 자연수를 담은 배열입니다.
- 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.
- divisor는 자연수입니다.
- array는 길이 1 이상인 배열입니다.
나의 접근 방법 및 풀이
for문과 if문을 이용하여 해당 되는 숫자를 리스트 answer에 담고 그 후 sort()를 이용해서 정렬한다.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환
→ 나누어 떨어지는 수가 없을 경우에 그냥 '-1'을 반환하는게 아니라 배열에 '-1'을 담아 반환해야 한다.
원래는 len(answer)이 0인지 아닌지에 따라 각각 return 해주는 조건문을 짰는데, 뭔가 더 길어져서 answer의 길이가 0이면 -1을 추가하고 그 후 한 번만 answer를 반환하도록 했다.
def solution(arr, divisor):
answer = [i for i in arr if i%divisor==0 ]
answer.sort()
if len(answer) == 0:
answer.append(-1)
return answer
다른 풀이
def solution(arr, divisor):
return sorted([n for n in arr if n%divisor == 0]) or [-1]
or를 이용해서 한줄로 구현할 수도 있다.
'코테 문제 > 프로그래머스' 카테고리의 다른 글
| [Python] Lv1.크레인 인형뽑기 게임 (0) | 2022.04.08 |
|---|---|
| [Python] Lv1.가운데 글자 가져오기 (0) | 2022.04.08 |
| [Python] Lv1.문자열 내 p와 y의 개수 (0) | 2022.04.08 |
| [Python] Lv1.x만큼 간격이 있는 n개의 숫자 (0) | 2022.04.08 |
| [Python] Lv1.문자열 다루기 기본 (0) | 2022.04.08 |