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
- 이미지 데이터 타입
- device in use
- html
- electron-packager
- adb pair
- github lfs
- augmentedDevice
- ffi-napi
- Recoil
- github 100mb
- Can't resolve
- npm package
- animation
- Failed to compiled
- custom printing
- react-native
- 티스토리 성능
- camera access
- Git
- camera permission
- react-native-dotenv
- ELECTRON
- github pdf
- Each child in a list should have a unique "key" prop.
- dvh
- adb connect
- rolldown
- vercel git lfs
- nextjs
- silent printing
Archives
- Today
- Total
Bleeding edge
프로그래머스 튜플 본문
https://programmers.co.kr/learn/courses/30/lessons/64065
개인적으로는, 이 문제가 무슨문제인가.. 하고 멘붕에 빠졌었는데, 어떤 분의 한마디가 문제아이디어를 잡는데 도움이 됬다.
숫자의 갯수로 정렬.
이 문제에서는 a1 a2 a3... an는 각 a1 : n, a2 :n-1 ... an : 1번만큼 출연을 하니 이에 맞게 sort를 하면된다.
function solution(s) {
var answer = [];
const regex = /[^0-9,]/g
let map = new Map()
s = s.replace(regex, '').split(',')
for(let i =0; i<s.length; i++){
if(!map.get(s[i])){
map.set(s[i], 1)
}else{
map.set(s[i], map.get(s[i])+1)}
}
map = Array.from(map).sort((a,b)=> b[1]-a[1])
for(i of map){
answer.push(Number(i[0]))
}
return answer;
}
1. regex로 {}를 없애고,
2. split으로 숫자를 array로 찢고,
3. 이를 map에 넣어서 1개씩 카운트를 한 뒤에
4. map을 Array로 바꾸고
5. Array를 map에 저장된 등장 횟수로 sort로 순서를 맨긴 뒤
6. answer에 push하는 방식으로 풀이를 하였다.
어떤식으로 문제를 해석할지에 대해 생각하게되는 문제중 하나였다.
'코딩테스트 공부' 카테고리의 다른 글
[프로그래머스] 수식 최대화 - 자바스크립트 (0) | 2022.04.06 |
---|---|
[프로그래머스] 다리를 지나는 트럭 - 자바스크립트 (0) | 2022.04.06 |
String.prototype.localeCompare() (0) | 2022.04.05 |
프로그래머스 네트워크 dfs/bfs 문제풀이 (0) | 2022.04.01 |
eval() (0) | 2022.03.30 |