-
문제
N개이 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 작성하세요. 정렬하는 방법은 선택정렬입니다.
▣ 입력설명
첫 번째 줄에 자연수 N(1<=N<=100)이 주어집니다.
두 번째 줄에 N개의 자연수가 공백을 사이에 두고 입력됩니다. 각 자연수는 정수형 범위 안에 있습니다.▣ 출력설명
오름차순으로 정렬된 수열을 출력합니다.▣ 입력예제 1
6
13 5 11 7 23 15▣ 출력예제 1
5 7 11 13 15 23결과
O
내가 푼 방식
const solution = (arr) => { return arr.sort((a,b) => a-b); } solution([13,5,11,7,23,15])
접근과정
1. sort 메소드를 써서 오름 차순을 시킨다.
모범답안
function solution(arr){ let answer=arr; for(let i=0; i<arr.length; i++){ let idx=i; for(let j=i+1; j<arr.length; j++){ if(arr[j]<arr[idx]) idx=j; } [arr[i], arr[idx]] = [arr[idx], arr[i]]; } return answer; }
리뷰
1. 이중포문을 돌려 제일 작은 수를 i번 위치에 넣는 것이 포인트이다.
2. 변수 idx를 만들고 첫번째 반복문의 i값을 초기값으로 넣고 두 번째 반복문에서 제일 작은 값의 index값을 idx에 넣는다.
3. 첫번째 반복문의 i자리에 저장해둔 제일 작은 값 arr[idx]과 바꾼다.
'알고리즘' 카테고리의 다른 글
[이분검색] (0) 2023.01.28 [그리디] 결혼식 (0) 2023.01.28 [자료구조(스택/큐)] 괄호문자제거 (0) 2022.09.25 [자료구조(스택/큐)] 올바른괄호 (0) 2022.09.18 [효율성/해쉬] 아나그램 (0) 2022.09.04