인프런 커뮤니티 질문&답변

냠냠님의 프로필 이미지
냠냠

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

1. 선택정렬

for문에서 i 범위

작성

·

111

0

for문에서 i의 범위를 arr.length이 아니라 arr.length-1로 해야하지 않나요??

선택정렬은 arr[i]뒷부분에서 최솟값을 찾는 것으로 이해했어요,  arr.length로 설정한다면, 맨 마지막 원소도 for문을 실행할텐데요.. 최솟값을 비교할 원소가 없는데 말이에요

범위를 어떻게 설정해야 할까요? 아래처럼 작성한 것도 정답인가요

      function solution(arr) {
        let answer = arr;
        for (let i = 0; i < arr.length - 1; i++) {
          let idx = i;
          for (let j = i + 1; j < arr.length; j++) {
            if (arr[idx] > arr[j]) {
              idx = j;
            }
          }
          [arr[i], arr[idx]] = [arr[idx], arr[i]];
          console.log(arr);
        }
        return answer;
      }

 

 

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

네. 아무렇게 해도 상관없습니다.

냠냠님의 프로필 이미지
냠냠

작성한 질문수

질문하기