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
- augmentedDevice
- github pdf
- nextjs
- electron-packager
- custom printing
- device in use
- rolldown
- animation
- react-native-dotenv
- vercel git lfs
- adb pair
- github lfs
- 티스토리 성능
- npm package
- html
- silent printing
- Failed to compiled
- ELECTRON
- github 100mb
- Can't resolve
- Git
- 이미지 데이터 타입
- adb connect
- camera permission
- Each child in a list should have a unique "key" prop.
- ffi-napi
- Recoil
- camera access
- dvh
- react-native
Archives
- Today
- Total
Bleeding edge
[프로그래머스] [3차] 압축- 자바스크립트 본문
https://programmers.co.kr/learn/courses/30/lessons/17684
예전부터 반복문이 이상하게 작동해서.. 5회이상 풀이를 했던 기억이 있다. console.log를 찍어봐도 이해가 안됬는데.. 문제가 되는 반복문을 제외하고, 풀이를 해서 풀이했다. 풀이 플로우는 다음과 같다.
1. 우선 msg를 for문으로 반복문을 만든다.
for(let i=0;i<msg.length;i++){}
2. 이때, msg[i] + msg[i+1]이 list에 없다면, list에 push를 하고, list에 있다면 msg[i] + msg[i+1]... 을 반복한다.
3. list에 push를 한다면, list push가 되기 이전의 string의 숫자를 구한다
4. string의 숫자는 한글자의 경우에는 charCodeAt() - 64를 넣고, 두글자 이상인 경우에는, list에 포함이 되어 있을테니 list의 index + 27을 더하는 숫자이다.
5. 이 숫자를 answer에 push하면 그게 답이다.
풀이는 다음과 같다.
function solution(msg) {
const list =[];
let answer = [];
const mnum = 64;
const pnum = 27
for(let i=0;i<msg.length;i++){
let now= msg[i];
let nxt = msg[i];
while(list.includes(nxt)||nxt.length===1){
now = nxt;
nxt = nxt + msg[i+1]
i++
}
i--
list.push(nxt)
if(now.length===1){
answer.push(now.charCodeAt()-mnum)
}else{
answer.push(list.indexOf(now) + pnum)
}
}
return answer
}
while문의 i++과 i--부분이.. 그 if 문이 작동이 잘안되서 억지로 넣은 부분이다..ㅠㅠ 이건 나중에 다시풀어보면서 왜 작동이 안하나를 찾아봐야할꺼 같다.
'코딩테스트 공부' 카테고리의 다른 글
[프로그래머스] 주차 요금 계산 - 자바스크립트 (0) | 2022.05.10 |
---|---|
[프로그래머스] JadenCase 문자열 만들기 - 자바스크립트 (0) | 2022.05.10 |
[프로그래머스] n^2 배열 자르기 - 자바스크립 (0) | 2022.05.03 |
[프로그래머스] [1차] 다트 게임 - 자바스크립트 (0) | 2022.04.28 |
[프로그래머스] k진수에서 소수 개수 구하기 - 자바스크립트 (0) | 2022.04.25 |