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
- vue3
- 웹팩
- 프로세스
- 큐
- 컨테이너
- 해시테이블
- C
- Machine Learning
- APOLLO
- 코딩테스트
- 배열
- 브라우저
- RxJS
- 이진탐색
- 자료구조
- 연결리스트
- GraphQL
- 타입스크립트
- alexnet
- 연결 리스트
- 릿코드
- 자바스크립트
- 알고리즘
- 스택
- 프론트엔드
- 포인터
- 프로그래머스
- pytorch
- cors
- RT scheduling
Archives
- Today
- Total
프린세스 다이어리
[프로그래머스] 가장 큰 수 문제 자바스크립트 풀이 본문
728x90
1. 접근 방법
(1) 조건을 충족하는 방식으로 compare하는 함수를 만든다.
const isLeftBiggerThanRight = (left, right) => {
if ((String(left) + String(right)) >= (String(right) + String(left))) {
return true;
} else {
return false;
}
}
(2) 퀵 정렬을 하여 결과를 이어붙여 리턴한다.
const quickSort = (numbers) => {
if (numbers.length <= 1) return numbers;
let mid = numbers[0];
let left = [];
let right = [];
for (let i = 1; i < numbers.length; i++) {
if (isLeftBiggerThanRight(numbers[i], mid)) {
left.push(numbers[i]);
} else {
right.push(numbers[i]);
}
}
return [...quickSort(left), mid, ...quickSort(right)];
}
2. 해답 코드
const isLeftBiggerThanRight = (left, right) => {
if ((String(left) + String(right)) >= (String(right) + String(left))) {
return true;
} else {
return false;
}
}
const quickSort = (numbers) => {
if (numbers.length <= 1) return numbers;
let mid = numbers[0];
let left = [];
let right = [];
for (let i = 1; i < numbers.length; i++) {
if (isLeftBiggerThanRight(numbers[i], mid)) {
left.push(numbers[i]);
} else {
right.push(numbers[i]);
}
}
return [...quickSort(left), mid, ...quickSort(right)];
}
function solution(numbers) {
if (numbers.length <= 1) return String(numbers)
const sorted = quickSort(numbers);
const answer = sorted.join('');
if (answer[0] == 0) return "0";
return answer
}
자바스크립트 내장 함수 sort()를 사용해도 되었지만 이번에 공부한 퀵 정렬을 활용해보고 싶었다.
사실 이 코드 보고 충격을 받았지만 애써 못본척 했다.
function solution(numbers) {
var answer = numbers.map(c=> c + '').
sort((a,b) => (b+a) - (a+b)).join('');
return answer[0]==='0'? '0' : answer;
}
728x90
'자료구조, 알고리즘' 카테고리의 다른 글
[백준] 미로 탐색 문제 자바스크립트 풀이 - BFS (0) | 2021.11.04 |
---|---|
[프로그래머스] H-index 문제 자바스크립트 풀이 (0) | 2021.11.02 |
자바스크립트 핵간단한 이진탐색 구현 기본 템플릿 (0) | 2021.10.31 |
자바스크립트 핵간단한 퀵정렬 코드 (0) | 2021.10.31 |
[프로그래머스] 주식가격 문제 C언어 스택 활용한 풀이 (0) | 2021.10.28 |
Comments