본문 바로가기

기타 개발 관련/알고리즘 풀어보기4

알고리즘 : 좌표 정렬 (sort 함수를 사용한 정렬 응용) 인프런 JS 알고리즘 강좌 문제를 한번 풀이해보겠습니다. 강좌는 아래 인프런 강좌를 참고해주시면 됩니다. 강좌 바로가기 문제 설명 N개의 평면상의 좌표(x, y)가 주어지면 모든 좌표를 오름차순으로 정렬하는 프로그램을 작성하세요. 정렬기준은 먼저 x값의 의해서 정렬하고, x값이 같을 경우 y값에 의해 정렬합니다. 입력 설명 첫째 줄에 좌표의 개수인 N(3 { if (a[0] === b[0]) { return a[1] - b[1] } }) return answer; } 좌표의 x를 비교하여 배열을 정렬한다. 정렬된 배열을 다시 비교한다. 이때 좌표의 x가 같으면 y를 기준으로 정렬한다. 인프런 해답 function solution(arr){ let answer=arr; arr.sort((a, b)=>{ i.. 2023. 3. 21.
알고리즘 : 공주구하기 (인프런, 큐를 이용한 문제) 인프런 JS 알고리즘 강좌 문제를 한번 풀이해보겠습니다. 강좌는 아래 인프런 강좌를 참고해주시면 됩니다. 강좌 바로가기 문제 설명 정보 왕국의 이웃 나라 외동딸 공주가 숲속의 괴물에게 잡혀갔습니다. 정보 왕국에는 왕자가 N명이 있는데 서로 공주를 구하러 가겠다고 합니다. 정보왕국의 왕은 다음과 같은 방법으로 공주를 구하러 갈 왕자를 결정하기로 했습니다. 왕은 왕자들을 나이 순으로 1번부터 N번까지 차례로 번호를 매긴다. 그리고 1번 왕자부터 N 번 왕자까지 순서대로 시계 방향으로 돌아가며 동그랗게 앉게 한다. 그리고 1번 왕자부터 시 계방향으로 돌아가며 1부터 시작하여 번호를 외치게 한다. 한 왕자가 K(특정숫자)를 외치면 그 왕자는 공주를 구하러 가는데서 제외되고 원 밖으로 나오게 된다. 그리고 다음 .. 2023. 3. 1.
알고리즘 : 후위식 연산 문제 풀이 (인프런 강좌) 문제 인프런 JS 알고리즘 강좌 문제를 한번 풀이해보겠습니다. 강좌 바로가기 문제 해석 해당 문제는 스택을 이용한 풀이 문제입니다. 후위식 연산이란 연산자가 피연산자 뒤에 있는 표기식입니다. 예를 들어 중위표기식이 3+5*2 를 후위표기식으로 표현하면 352*+ 로 표현됩니다. 만약 다음과 같이 연산 최우선인 괄호가 표현된 식이라면 (3+5)*2 이면 35+2* 로 바꾸어야 합니다. 노트 메모 (끄적) 내 해답 function mySolution(s){ const stackNumber = []; let result = -1; for (let i of s) { if (isNaN(i)) { let a, b, op; op = i; if (result === -1) { a = stackNumber.pop(); .. 2023. 2. 14.
백준 풀이 2750번 - 수 정렬하기 (+ 삽입정렬 개념) 2070번 문제 여러 정렬알고리즘 중에 삽입정렬 알고리즘을 이용하여 문제를 풀어보았습니다. 삽입정렬이란 ? 삽입 정렬은 말그대로 삽입 (꽂아 넣는 정렬)하는 정렬입니다. 자신보다 앞의 원소가 큰지 작은지 비교해야 하기 때문에 arr[1] ~ arr[n] 까지 진행됩니다. (두번째 원소인 arr[1]부터 시작.) 삽입을 하면 데이터가 하나씩 밀려야 하기 때문에 배열이 길어질수록 효율이 떨어집니다. 추가 특징 ? 버블 소트와 비슷하게 리스트 크기가 크면 불리합니다. (계속 처음부터 끝까지 비교를 하여야 함.) 정렬의 거의 된 데이터일 경우 유리합니다. (교환이 적게 일어남) (이것도 버블과 비슷) 데이터가 역순인 경우 최악의 경우(Worst Case)에는 시간이 엄청 느립니다. (버블) 버블정렬과 다른점 버.. 2019. 10. 1.