안녕하세요! 오늘은 자바스크립트로 코딩테스트 문제를 해결하는 방법에 대해 알아보도록 하겠습니다. 이번 강좌의 주제는 ‘K번째 수 구하기’입니다. 이 문제를 통해 우리는 배열의 정렬 및 특정 인덱스의 값을 찾는 방법을 배울 것입니다. 문제의 내용과 해결 과정을 단계 별로 살펴보겠습니다.
문제 설명
주어진 배열에서 특정 조건을 만족하는 K번째 수를 찾아야 합니다. 구체적인 문제 설명은 아래와 같습니다.
문제: K번째 수 구하기 당신은 배열과 정수 K가 주어졌을 때, 배열을 오름차순으로 정렬한 후 K번째로 작은 수를 반환해야 합니다. 입력: - 첫 번째 줄: 정수 N (배열의 길이), 정수 K (찾고자 하는 수의 위치) - 두 번째 줄: N개의 정수로 이루어진 배열 출력: - K번째 작은 수
예시
- 입력:
5 2
- 배열:
[3, 1, 2, 5, 4]
- 출력:
2
위의 입력값에서, 배열을 오름차순으로 정렬하면 [1, 2, 3, 4, 5]
가 되고, 2번째 수는 2
입니다.
문제 해결 과정
문제를 푸는 데 필요한 단계는 다음과 같습니다.
- 입력값을 읽고 배열과 K를 설정합니다.
- 배열을 오름차순으로 정렬합니다.
- K번째 인덱스의 값을 출력합니다.
1단계: 입력값 읽기
JavaScript의 경우, prompt
함수를 사용하여 입력값을 받을 수 있습니다. 하지만, 코딩테스트 플랫폼에서는 주로 표준 입력을 통해 값을 읽어옵니다. 여기서는 배열을 직접 선언하여 테스트하도록 하겠습니다.
const arr = [3, 1, 2, 5, 4];
const K = 2; // K번째 수
2단계: 배열 정렬
자바스크립트에서는 배열을 정렬하기 위해 sort
메소드를 사용할 수 있습니다. 이 메소드는 기본적으로 문자열 정렬을 하기 때문에, 숫자 정렬을 위해 콜백 함수를 제공해야 합니다.
arr.sort((a, b) => a - b);
위 코드는 배열을 오름차순으로 정렬합니다. 즉, 작은 수부터 큰 수로 나열합니다.
3단계: K번째 수 반환
배열 인덱스는 0부터 시작하므로, K번째 수를 가져오기 위해서는 K-1
을 인덱스로 사용해야 합니다. 따라서 다음과 같이 할 수 있습니다.
const kthNumber = arr[K - 1];
console.log(kthNumber); // 출력
전체 코드
이제 모든 단계를 종합하여 전체 코드를 작성해보겠습니다.
function findKthNumber(arr, K) {
// 배열을 오름차순으로 정렬
arr.sort((a, b) => a - b);
// K번째 수 반환 (K는 1-based 인덱스이므로 K-1 사용)
return arr[K - 1];
}
// 테스트
const arr = [3, 1, 2, 5, 4]; // 예시 배열
const K = 2; // K번째 수
const result = findKthNumber(arr, K);
console.log(result); // 결과 출력: 2
결론
이번 강좌에서는 ‘K번째 수 구하기’ 문제를 해결해보았습니다. 배열을 정렬하고 특정 위치의 값을 찾는 과정에서 자바스크립트의 배열 메소드인 sort
를 활용하는 방법을 배웠습니다. 알고리즘 문제를 풀 때에는 문제를 잘 이해하고, 작은 단위로 나누어 해결하는 것이 중요합니다. 다음에는 더 다양한 문제를 가지고 찾아오겠습니다. 감사합니다!