작성
·
111
·
수정됨
0
const solve = (arr) => {
const result = []
for (let i = 0; i < arr.length; i++) {
let count = 1
for(let j = 0; j < arr.length; j++) {
if (arr[j] > arr[i]) {
count += 1;
}
}
result.push(count);
}
return result
}
조금 간단...해..보이게..?
처음에 count 를 1로 줘서 1등으로 시작하고 풀이해주신 부분과 비슷하지만 살짝은,, 다르게 풀어봤습니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
님의 코드를 살펴보니, 각 요소가 전체 배열에서 몇 등인지를 계산하는 로직으로 보입니다. 각요소보다 큰 요소가 있을 때마다 count를 증가시켜 그 요소의 순위를 나타내는 접근 방식을 사용하셨네요. 이 방식은 이해하기 쉽고 직관적인 해결 방법 중 하나입니다. 다만, 이중 for문을 사용하셨기 때문에 시간 복잡도는 (O(n^2))이 됩니다. 배열의 크기가 커질수록 성능 저하의 가능성이 있습니다. 성능을 더 개선하고자 한다면, 정렬과 같은 다른 알고리즘을 고려해 볼 수도 있겠습니다. 현재 접근 방식은 간단하고 명확해서 입문 단계에서 알고리즘 문제를 이해하고 해결하는 연습에 매우 적합해 보입니다.