01. K번째 수
배열 array와 array에 영향을 주는 변수를 모아둔 commands 배열이 있다.
commands 배열은 항상 원소가 3개이고 순서대로 i, j, k라는 변수이다.
먼저 commands 배열을 돌면서 원소를 하나씩 꺼내고
array를 자르는 역할을 하는 i와 j는
예를 들어 i=2, j=5라면 array[2:5]로 자르면 index 2번째를 제외하고
3,4,5로 잘리기 때문에 i에는 -1을 해주어 2,3,4,5로 잘리게 변수를 설정한다.
k는 몇번째 수를 의미하기 때문에 실제 array의 index는 0부터 시작하기 때문에
-1을 해주어야 원하는 수를 찾을 수 있다.
new_array 라는 변수를 설정하여 잘라진 array를 내림차순으로 정렬하고
이 새로운 배열의 k번째 수를 k_num이라는 빈리스트에 append하여
return하여 출력하였다.
02. 완주하지 못한 선수
참여자와 완주자는 1명이 반드시 차이가 나야하고,
완주하지 못한 선수들의 이름을 return 해야한다.
참여자와 완주자의 index를 0으로 지정하고
완주자의 index가 길이보다 작을때까지 while문을 돌려서
참여자와 완주자가 같지 않으면 참여자의 index를 하나씩 늘려서
같아질때까지 비교하고,
만약 같다면 참여자 리스트에서 완주자를 지우고
완주자의 index를 하나 늘리고 참여자의 index는 0으로 만들어서
다음 완주자와 참여자의 list를 비교하도록 코드를 짜봤다.
완주하지 못한 선수들이 정상적으로 return은 되지만
"선수이름"으로 출력되지 않아서 오답처리 되나 싶어서
"선수이름"으로 출력되도록 print문을 설정했지만
시간초과로 테스트에 통과하지 못하였다🤔
알고리즘의 정렬 방식을 사용해서 문제를 풀 수 있을 것 같은 생각이 드는데
배열, 스택, 큐 등의 내용을 더 학습한 뒤에 재도전 해봐야겠다.
'개발노트 > coding test' 카테고리의 다른 글
[알고리즘(algorithm) (2) Arraylist와 Linkedlist] 어떤 알고리즘을 선택해야할까? (0) | 2022.01.11 |
---|---|
[BAEKJOON 알고리즘 문제풀이] 문자열 - 숫자의 합, 문자열 반복 (0) | 2022.01.10 |
[구름 level 알고리즘 문제풀이] 뱀이 지나간 자리, 의좋은 형제 (0) | 2022.01.07 |
[구름 level 알고리즘 문제풀이] 거스름돈, 띄어쓰기 제거하기 (0) | 2022.01.06 |
[구름 level 알고리즘 문제풀이] 홀짝판별, 리그경기 횟수 구하기 (0) | 2022.01.05 |