반응형
❤️🔥TIL : Today I Learned❤️🔥
그날그날 내가 공부한 것을 정리하는 것
내일배움캠프 AI트랙 52day
오늘 배운 내용 - 알고리즘 2회차 07번~ 10번
https://github.com/LeeHyunji/python-algorithm
7. K번째 수 - 정렬 [🔗]
결과
테스트 성능 - 0.00ms, 10.3MB
채점 결과
- 정확성: 100.0
- 합계: 100.0 / 100.0
풀이
1. array의 index는 0부터 시작하므로 [i-1:j]까지 자른다.
2. commend가 여러개 있어서 sorted로 리스트를 만들어 정렬
3. k번째 요소 추출해서 answer 리스트에 추가. 최종적으로 answer 출력
8. 같은 숫자는 싫어 - 스택/큐 [🔗]
결과
테스트 성능
- 0.00ms, 10.3MB
채점 결과
- 정확성: 71.9
- 효율성: 28.1
- 합계: 100.0 / 100.0
풀이
1. 문제 타이틀이 스택/큐 문제라고 되어 있고, 원소의 순서를 유지해야된다고 해서 앞에서 부터 요소 빼는 Queue를 사용했다.
2. Queue를 사용해서 결과 배열(answer)이 비어있거나, 결과 배열의 마지막 값이 Queue.pop 값과 같지 않을때 결과 배열에 추가하도로 했다.
3. 테스트 정확성은 문제가 없었는데 효율성에서 Runtime 문제가 발생한것같다.
4. Queue를 열심히 만지작 거렸는데도 반복해서 Runtime Error 발생
5. Queue 사용없이 list 요소 비교로 재작성 했더니 효율성 통과 (60.28ms, 27.8MB)
6. Error 원인 ) Queue.pop 사용시 배열의 길이가 길어지면 모든 요소가 한칸씩 앞으로 당겨져야 해서 매우 오래 걸린다고 한다.
1,000,000 배열 크기면 pop 한번 하면 999,999 요소가 한번씩 앞으로 이동해야 되는 현상이 발생.
7. Error 파악하고나니 뒤에서 꺼내는 Stack으로 한뒤 reverse하면 어땠을까 싶어서 시도했는데 통과 (141.59ms, 21.8MB)
9. 실패율 - 2019 KAKAO BLIND RECRUITMENT [🔗]
결과
테스트 성능
- 1733.37ms, 18.4MB
채점 결과
- 정확성: 100.0
- 합계: 100.0 / 100.0
풀이
1. 실패율은 스테이지별로 계산을 해야되므로 전체 스테이지의 개수 N으로 반복문
2. 리스트.count()를 사용해서 유저별로 현재 멈춰있는 스테이지의 번호가 담긴 stages배열에서 해당 스테이지에 몇명이나 멈춰있는지를 추출
3. curr_stage_fail/curr_stage_players(스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수)로 실패율 계산
3. 실패율을 기준으로 정렬하고 번호를 return값으로 추출해야되므로 두개의 값 모두 저장할 필요성이 있어서 딕셔너리 형태로 저장
4. dict의 items(실패율) 기준으로 정렬하고 리스트 축약형을 사용해 dict의 key(스테이지번호)가 담긴 리스트 생성 하고 return
5. Runtime Error 발생 ) 앞쪽에서 스테이지 도달이 막히면 뒤쪽에는 스테이지에 도달한 유저가 0이 되므로 ZeroDivisionError가 발생
- 스테이지 도달 유저가 0이면 실패율 0으로 처리 후 통과
10 소수 만들기 - Summer/Winter Coding(~2018) [🔗]
결과
테스트 성능
- 106.05ms, 11.3MB
채점 결과
- 정확성: 100.0
- 합계: 100.0 / 100.0
풀이
1. 주어진 숫자 배열 num에서 순서상관없이 중복되지 않는 숫자를 추출하는데 조합 개념을 사용
2. itertools 모듈의 combinations(배열,추출개수)를 사용해서 3가지 숫자 추출
3. 추출한 값의 합이 소수인지 판별
반응형
'I learned' 카테고리의 다른 글
내일배움캠프 AI - TIL 54 (0) | 2022.11.17 |
---|---|
내일배움캠프 AI - TIL 53 (0) | 2022.11.16 |
내일배움캠프 AI - TIL 51 (0) | 2022.11.14 |
내일배움캠프 AI트랙 11 Week (0) | 2022.11.13 |
내일배움캠프 AI - TIL 50 (0) | 2022.11.13 |