문제: 수열이 주어질때, 이 수열에 있는 수 중 최소값의 위치를 모두 출력하는 프로그램을 작성하시오.
입력은 자연수로 된 배열을 받고, 시작위치는 0으로 계산하여 최소값의 위치를 배열로 반환한다.
해설: function answer(nums) {
let result = [];
let min = Number.Max_Safe_INTEGER;
let count = 0;
for (let i = 0; i < nums.legnth; i++) {
if (min>nums[i]) { ===>>> 이 문단은 이해가 됐음. 최소값을 찾는 반복문
min = nums[i];
}
}
for (let i = 0; i <nums.length; i++) {
if (min == nums[i]) { =====>> 찾은 최소값 min이 nums와 같을때 까지는 이해함
result[count++] = i; ==> 여기서 같을때만 count값이 1씩 올라가는거 아닌가여? // 그냥 이줄이 이해가 안됩니다 ㅠㅠ
}
}
return result;
}
입력값: [5,2,10,2] 출력값: [1,3]
[4,5,7,4,8] [0,3]
최소값의 위치임
출력값이 위치를 반환하는 배열이니까 result라는 빈 배열을 만들어두고 count의 기본은 0이니까 최소랑 숫자랑 같을 때 result[0] = i를 넣어주고 ++로 인해서 숫자가 1이 더해짐 그럼 다음에 또 조건이 같다면 count는 0이 아니라 1이니까 result[1]에 값을 넣어주는거지
근데 굳이 저런식으로 해야하나?
배열 배우는단계라서 이렇게 해설해주나봐요.