일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 코딩
- 감사인사
- Python
- 알파줄거리
- 기사스크랩
- 구글애널리틱스
- 미라클 모닝
- 티스토리
- 벚꽃개화시기
- 명상
- GA
- 6시 기상
- Google Analytics
- 프로그래머스
- 데이터문해력
- 채용공고
- 구글애널리틱스4
- 영화 올드 줄거리
- 독서
- 니다
- 얼음여왕
- 데이터 분석
- ㅂㅂ
- 코오롱베네트
- 벚꽃
- GA4
- 수명예측 인공지능
Archives
- Today
- Total
Data Analyst KIM
[프로그래머스Lv0] 무작위로 k개의 수 뽑기 - 파이썬 본문
반응형
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
<원리>
arr의 리스트에서 순서대로,중복을 제외하여 k개의 개수만큼 result의 개수가 결정이 된다.
만약 arr의 중복을 하지 않은 개수가 k개보다 적다면 나머지는 -1로 저장을 해준다.
<문제접근법>
1. 조건문을 이용하여 arr의 개수만큼 실행한다.
2. num = arr[i]를 이용하여 arr의 인덱스를 num에 저장한다.
3. 조건문을 이용하여 num이 arr의 인덱스가 처음부터 현재인덱스-1까지 중 포함되지 않는 숫자라면 answer에 저장한다.
4. k의 개수에 따라 두가지로 나뉜다.
5. 첫번째로 k개 이상인 경우 k개 일 경우만 생각해주면된다. => 조건문을 통해 k개이면 멈춘다.
6. 두번째로 k개 보다 작은 경우 -1을 추가하면 된다.
def solution(arr, k):
answer = []
for i in range(len(arr)) :
num = arr[i]
if num not in arr[:i]:
answer.append(num)
if len(answer) == k :
break
while len(answer) < k:
answer.append(-1)
return answer
반응형
'데이터 분석 > Coding Test' 카테고리의 다른 글
[프로그래머스Lv0] 배열 조각하기 - 파이썬 (0) | 2023.05.24 |
---|---|
[프로그래머스Lv0] k의 개수 - 파이썬 (0) | 2023.05.17 |
[프로그래머스Lv0] 코드 처리하기 - 파이썬 (0) | 2023.05.15 |
[프로그래머스Lv0] A로 B 만들기 - 파이썬 (0) | 2023.05.13 |
[프로그래머스Lv0] 배열 회전시키기 - 파이썬 (0) | 2023.05.12 |