회의실 배정(자바스크립트) 한 개의 회의실이 있는데 이를 사용하고자 하는 n개의 회의들에 대하여 회의실 사용표를 만들 려고 한다. 각 회의에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하 면서 회의실을 사용할 수 있는 최대수의 회의를 찾아라. 단, 회의는 한번 시작하면 중간에 중 단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 첫째 줄에 회의의 수 n(1 알고리즘 2023.04.13
좌표정렬 N개의 평면상의 좌표(x, y)가 주어지면 모든 좌표를 오름차순으로 정렬하는 프로그램을 작성하 세요. 정렬기준은 먼저 x값의 의해서 정렬하고, x값이 같을 경우 y값에 의해 정렬합니다. [입력예제 1] [ [ 2, 7 ], [ 1, 3 ], [ 1, 2 ], [ 2, 5 ], [ 3, 6 ] ] [출력예제 1] [ [ 1, 2 ], [ 1, 3 ], [ 2, 5 ], [ 2, 7 ], [ 3, 6 ] ] 풀이 function solution(arr){ let answer = arr; answer.sort((a,b) => { if(a[0] === b[0]) return a[1]-b[1] return a[0]-b[0] }) return answer; } let arr=[[2, 7], [1, 3], [1, 2.. 알고리즘 2023.04.13
장난꾸러기 현수 새 학기가 시작되었습니다. 현수는 새 짝꿍을 만나 너무 신이 났습니다. 현수네 반에는 N명의 학생들이 있습니다. 선생님은 반 학생들에게 반 번호를 정해 주기 위해 운동장에 반 학생들을 키가 가장 작은 학 생부터 일렬로 키순으로 세웠습니다. 제일 앞에 가장 작은 학생부터 반 번호를 1번부터 N번까 지 부여합니다. 현수는 짝꿍보다 키가 큽니다. 그런데 현수가 앞 번호를 받고 싶어 짝꿍과 자 리를 바꿨습니다. 선생님은 이 사실을 모르고 학생들에게 서있는 순서대로 번호를 부여했습니 다. 현수와 짝꿍이 자리를 바꾼 반 학생들의 일렬로 서있는 키 정보가 주어질 때 현수가 받은 번 호와 현수 짝꿍이 받은 번호를 차례로 출력하는 프로그램을 작성하세요. [입력예제 1] 120 125 152 130 135 135 143 .. 알고리즘 2023.04.12
삽입정렬 N개이 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 작성하세요. 정렬하는 방법은 삽입정렬입니다. 입력예제 11 7 5 6 10 9 출력예제 5 6 7 9 10 11 풀이 function solution(arr){ // 배열 얕은복사로 인해 arr가 바뀌면 answer도 바뀜 let answer=arr; // arr 요소와 arr요소의 나머지 요소를 비교를 위해 이중 for문 for(let i=0; i=0; j--){ //arr[j] (arr[i-1]) 가 tmp (arr[i]) 보다 크면 arr[j+1] 인덱스에 arr[j]를 저장한다. if(arr[j]>tmp) arr[j+1]=arr[j]; //for문을 다돌아서 만약 arr[j]가 tmp보다 작다면 for문을 탈출한다. else brea.. 알고리즘 2022.12.22
Special Sort(구글 인터뷰) N개의 정수가 입력되면 당신은 입력된 값을 정렬해야 한다. 음의 정수는 앞쪽에 양의정수는 뒷쪽에 있어야 한다. 또한 양의정수와 음의정수의 순서에는 변함이 없어야 한다. 입력예제 1 2 3 -3 -2 5 6 -6 출력예제 -3 -2 -6 1 2 3 5 6 풀이 function solution(arr) { // answer에 arr 얕은복사 , arr 값이 바뀌면 answer 도 바뀜. let answer = arr; // 기존의 버블정렬 형태로 이중 for문 실행, 맨마지막 인덱스는 비교할 인덱스가 없으니 arr.length - 1 까지만 For문 실행 for (let i = 0; i < arr.length - 1; i++) { //버블 정렬의 형태기 때문에 마찬가지로 // 비교가 완료된 맨마지막 inde.. 알고리즘 2022.12.18
선택정렬 N개이 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 작성하세요. 정렬하는 방법은 선택정렬입니다. 입력예제 13 5 11 7 23 15 출력예제 5 7 11 13 15 23 function solution(arr){ // arr 배열 매개변수 얕은복사 저장 얕은복사라 arr가 바뀌면 answer도 바뀜 let answer=arr; //요소와 요소를 비교해 어떤 요소가 더 작은지 찾기 위해 이중 For문 실행 for(let i=0; i 알고리즘 2022.12.13