Skip to content

Commit

Permalink
#13 22.07.01 > 가장 큰 수
Browse files Browse the repository at this point in the history
  • Loading branch information
beurmuz committed Jul 1, 2022
1 parent 57d0fb2 commit 71cb4c9
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/programmers/Lv_2/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@
|5|[최솟값 만들기](./accMin.js)|22.06.08|O|X|
|6|[숫자의 표현](./expressionNumber.js)|22.06.11|O|X|
|7|[짝지어 제거하기](./mateRemove.js)|22.06.13|O|X|
|8|[프린터](./printer.js)|22.06.24|X|다시풀었다|
|8|[프린터](./printer.js)|22.06.24|X|다시풀었다|
|9|[가장 큰 수](./greatestNumber.js)|22.07.01|X|다시|
58 changes: 58 additions & 0 deletions src/programmers/Lv_2/greatestNumber.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
// 내 처음 풀이
/*
numbers 배열을 정렬하는데 자릿수가 2이상이면 split해서 끝자리로 내림차순 정렬 해주고,
다른 경우에는 전부 앞자리로 내림차순 정렬을 함
근데 정확성 6.7/100.0 ㅎㅎ
*/
function solution(numbers) {
let answer = '';

numbers.sort((a,b) => {
let arrA = a.toString().split('');
let arrB = b.toString().split('');

if(arrA.length > 1 && arrB.length > 1) {
return arrB[1] - arrA[1];
}

return arrB[0] - arrA[0];
});

return answer = (numbers.join(''));
}



// 다른 풀이보고 변형한 것
function solution(numbers) {
let answer = '';
numbers.sort((a,b) => {
const newA = (a+'' + b+'')*1 // 문자열a+b 한 값과
const newB = (b+'' + a+'')*1 // 문자열b+a 한 값을 비교해서
return newB - newA; // 내림차순으로 정렬
})
answer = numbers.join('')
if(answer[0] === '0') return '0'
return answer;
}



// 위의 코드랑 같은데 더 간단한 듯
function solution(numbers) {
let answer = numbers.map(v=>v+'') // 문자열로 변환
.sort((a,b) => (b+a) - (a+b)) // 숫자 크기로 비교
.join('');

return answer[0]==='0'?'0':answer;
}



// 핵심은 문자열 더해서 비교해본 후 정렬하기!
function solution(numbers) {
let answer = numbers.sort((a, b) => `${b}${a}` - `${a}${b}`).join('');
return answer[0] === '0' ? '0' : answer;
}

0 comments on commit 71cb4c9

Please sign in to comment.