Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- aws lightsail
- 그리디
- nestjs
- nextjs
- TypeScript
- 투포인터
- 정렬
- next.js
- 알고리즘
- 스택
- 슬라이딩윈도우
- Algorithm
- never타입
- styled-components
- js알고리즘
- react-query
- isNaN
- 버블정렬
- typscript
- NextAuth
- 블로그만들기
- 해쉬
- textarea autosize
- 빅오
- tailwindcss
- JavaScript
- react
- cookie
- 큐
- 라이프사이클
Archives
- Today
- Total
far
[JS 알고리즘] 장난꾸러기 현수 (정렬과 그리디) 본문
장난꾸러기 현수
새 학기가 시작되었습니다. 현수는 새 짝꿍을 만나 너무 신이 났습니다. 현수네 반에는 N명의 학생들이 있습니다. 선생님은 반 학생들에게 반 번호를 정해 주기 위해 운동장에 반 학생들을 키가 가장 작은 학생부터 일렬로 키순으로 세웠습니다. 제일 앞에 가장 작은 학생부터 반 번호를 1번부터 N번까지 부여합니다. 현수는 짝꿍보다 키가 큽니다. 그런데 현수가 앞 번호를 받고 싶어 짝꿍과 자리를 바꿨습니다. 선생님은 이 사실을 모르고 학생들에게 서있는 순서대로 번호를 부여했습니다.
현수와 짝꿍이 자리를 바꾼 반 학생들의 일렬로 서있는 키 정보가 주어질 때 현수가 받은 번호와 현수 짝꿍이 받은 번호를 차례로 출력하는 프로그램을 작성하세요.
입력설명
첫 번째 줄에 자연수 N(5<=N<=100)이 주어진다.
두 번째 줄에 제일 앞에부터 일렬로 서있는 학생들의 키가 주어진다.
키(높이) 값 H는 (120<=H<=180)의 자연수 입니다.
출력설명
첫 번째 줄에 현수의 반 번호와 짝꿍의 반 번호를 차례로 출력합니다.
입력예제 1
120 125 152 130 135 135 143 127 160
출력예제 1
3 8
출력해설 : 키 정보 152가 현수이고, 127이 현수 짝꿍입니다.
입력예제 2
120 130 150 150 130 150
출력예제 2
3 5
// 나의 풀이
function solution(arr){
let answer = [];
const student = [...arr]
let tmp = student.sort((a, b) => a - b)
for (let i = 0; i < arr.length; i++) {
if (student[i] !== arr[i]) answer.push(i+1)
}
return answer;
}
let arr=[120, 125, 152, 130, 135, 135, 143, 127, 160];
console.log(solution(arr));
student에 arr을 복사 후 정렬하고 for로 바뀐 숫자만 비교해서 몇 번째인지 찾았다.
// 강의의 풀이
function solution(arr){
let answer=[];
let sortArr=arr.slice();
sortArr.sort((a, b)=>a-b);
for(let i=0; i<arr.length; i++){
if(arr[i]!==sortArr[i]) answer.push(i+1);
}
return answer;
}
let arr=[120, 125, 152, 130, 135, 135, 143, 127, 160];
console.log(solution(arr));
slice를 사용한 것 외에는 나의 풀이와 같다.
문제 출처:
'알고리즘 > 알고리즘 베이스' 카테고리의 다른 글
[JS 알고리즘] 회의실 배정 (정렬과 그리디) (0) | 2023.04.28 |
---|---|
[JS 알고리즘] 좌표 정렬 (0) | 2023.04.15 |
[JS 알고리즘] Least Recently Used(카카오 캐시 문제 변형) / (삽입 정렬 응용) (0) | 2023.04.15 |
[JS 알고리즘] 삽입 정렬 (0) | 2023.04.06 |
[JS 알고리즘] Special Sort(구글 인터뷰) (0) | 2023.04.06 |
Comments