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 |
Tags
- npm package
- device in use
- html
- github lfs
- electron-packager
- Can't resolve
- 티스토리 성능
- Git
- github pdf
- adb pair
- react-native
- 이미지 데이터 타입
- rolldown
- animation
- custom printing
- camera permission
- camera access
- nextjs
- Recoil
- Failed to compiled
- adb connect
- Each child in a list should have a unique "key" prop.
- augmentedDevice
- react-native-dotenv
- silent printing
- github 100mb
- ffi-napi
- ELECTRON
- dvh
- vercel git lfs
Archives
- Today
- Total
Bleeding edge
[프로그래머스] 가장 큰 수 - 자바스크립트 본문
https://programmers.co.kr/learn/courses/30/lessons/42746
코딩테스트 연습 - 가장 큰 수
0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰
programmers.co.kr
function solution(numbers) {
let list = []
for (let i = 0; i < numbers.length; i++) {
list.push(String(numbers[i]))
}
list.sort((a, b) => b.concat(a) - a.concat(b))
let answer = list.join('')
return answer[0] === "0" ? answer[0] : answer
}
concat으로 부텼을때, 더 큰 값을 앞으로 뺀뒤 join시켰다.
다른사람의 풀이
function solution(numbers) {
let strings = numbers.map(num => num + "");
const answer = strings.sort((a, b) => (b + a) - (a + b)).join("");
return answer[0] === "0" ? "0" : answer;
}
내기억으로 분명 저방법을 써서 안됬던거같은데 아마 내가 괄호를 빼서 안됬던거 같다..
피드백
사실 한개의 케이스 빼고는 모두 쉽게 해결했다. 1개의 케이스 같은경우에는 return의 statement로 해결했다. 바로 첫번째 글자가 0이면 000000과 같은 값이 나올텐데 이는 문자라 이렇게 나온거지 실제는 0으로 출력되야하기 때문이다. 그래도 5분이내에 boundary condition에 대해서 생각해서 해결했으며, 앞으로도 boundary condition에 대해서 자주 생각해볼 것.
'코딩테스트 공부' 카테고리의 다른 글
[프로그래머스] 영어 끝말잇기 - 자바스크립 (0) | 2022.04.12 |
---|---|
[프로그래머스] 2개 이하로 다른 비트 - 자바스크립트 (0) | 2022.04.12 |
[프로그래머스] 수식 최대화 - 자바스크립트 (0) | 2022.04.06 |
[프로그래머스] 다리를 지나는 트럭 - 자바스크립트 (0) | 2022.04.06 |
프로그래머스 튜플 (0) | 2022.04.05 |