<제출답안>
코드 결과는 맞게 잘 나온다. 챗gpt도 틀린건 아니라한다.
하지만 코드가 비효율 적이다.
병합정렬을 사용해서 미리 코드들을 정렬한뒤 병합하면 훨씬 더 효율적이라 한다.
function solution(arr1, arr2){
for(let x of arr1){
arr2.push(x)
}
sortedArr = arr2.sort((a,b) => a-b)
return sortedArr
}
let a=[1, 3, 5];
let b=[2, 3, 6, 7, 9];
console.log(solution(a, b));
코드를 보니 아.. 문제 조건이 오름차순으로 주어지는 구나.
내 답은 오름차순으로 정렬된 것을 다시 정렬하는 방식이니 비효율적이라고 하는 것이었다.
하나씩 앞에서 부터 코드를 비교해 가면서 코드를 넣되, 한쪽만 코드가 남아 있을경우 그 코드만 쭉 뒤에 넣으면 그대로 정렬이 완성되는 것이다.
function solution(arr1, arr2){
function mergeSortedArrays(arr1, arr2) {
let result = [];
let i = 0; // arr1의 인덱스
let j = 0; // arr2의 인덱스
while (i < arr1.length && j < arr2.length) {
if (arr1[i] < arr2[j]) {
result.push(arr1[i]);
i++;
} else {
result.push(arr2[j]);
j++;
}
}
// arr1에 남아있는 원소가 있을 경우
while (i < arr1.length) {
result.push(arr1[i]);
i++;
}
// arr2에 남아있는 원소가 있을 경우
while (j < arr2.length) {
result.push(arr2[j]);
j++;
}
return result;
}
}
let a=[1, 3, 5];
let b=[2, 3, 6, 7, 9];
console.log(solution(a, b));
'🗃️javascript > 코테 프레임 문제' 카테고리의 다른 글
1-15 가운데 문자 출력(O) (0) | 2024.04.11 |
---|---|
1-14 가장 긴 문자열(△) (0) | 2024.04.10 |
2-3 가위 바위 보(24년)[reduce문 acc를 빈 배열로 초기화한 예시] (0) | 2023.09.21 |
1-12 대문자로 통일[아스키 코드 활용] (0) | 2023.09.21 |
1-11 대문자 찾기[문자열 != 배열 || 아스키 코드 출력 : charCodeAt()] (0) | 2023.09.20 |