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

김란영님의 프로필 이미지

작성한 질문수

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

5. 최솟값 구하기

제가 작성한 코드에 문제가 무엇일까요ㅠ

해결된 질문

작성

·

215

0

function solution(arr) {
            let min = arr[0]
            for(let i=0; i<arr.length; i++){
                // return arr.length
                if(min>arr[i]){
                    min = arr[i];
                }
                return min;
            }
        }

        let arr = [5, 7, 1, 3, 2, 9, 11];
        console.log(solution(arr));

저는 최솟값을 배열의 0번지로 지정을해서 해당 값보다 더 작은값이 나오면 바꿔주게 작성을 하였는데 리턴값이 '5'로 출력이 됩니다. 

처음에는 5 > 7 작기때문에 5가 리턴되는건줄 알았는데

배열의 순서를 바꾸어 [5, 1, 7, ... ]을 해도 5가 리턴이 되어 해당 로직이 배열의 순서때문은 아니란것을 확인했습니다.

혹시 제 로직에 대해서 어디가 문제인지 알려주시면 감사하겠습니다..!

답변 2

0

return을 사용하면 코드가 그대로 종료되기 때문에 for문이 바로 종료가 되버린 것 같아요!

0

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

안녕하세요^^

return min;  코드라인이 for 반복문이 끝난 다음에 있어야 합니다.

김란영님의 프로필 이미지
김란영
질문자

헉..!! 그러네요!! 감사합니다!!! 다음부터는 어디에서 끝나는지 잘 확인해야겠어요!!