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
- 정렬
- 과제진행하기
- 백준 알고리즘
- JS
- 최소스패닝트리
- 이중지도
- Lv3
- 스택
- 타겟넘버
- 알고리즘 문제풀이
- div2개
- 비트마스크
- pccp기출문제
- 코어자바스크립트
- 우박수열정적분
- 알고리즘문제풀이
- solved.ac골드
- 5강클로저
- JS스터디
- 백준알고리즘
- c++
- 프로그래머스
- 두원사이의정수쌍
- Lv2
- 지도 여러개
- React.StrictMode
- DP
- 2023카카오블라인드코테
- [pccp 기출문제]
- solved.ac플래티넘
Archives
- Today
- Total
호지
[프로그래머스] 대충 만든 자판 JS 본문
keymap을 탐색해서, map에 정의된 key의 최솟값을 먼저 찾으면 쉽게 해결할 수 있는 문제이다.
map에 정의된 key값의 최솟값을 찾기 위해 이중 for문을 돌려서,
처음 본 key값이거나, 이전 key값보다 작을때 count를 업데이트한다.
이후 targets를 탐색하여 합을 구하는데,
key값이 map에 정의된적이 없을 때, 즉 undefined일 때는 -1이 되도록 했다
function solution(keymap, targets) {
let count = {};
let answer = [];
for(let i=0; i<keymap.length; i++){
for(let j=0; j<keymap[i].length; j++){
if(!count[keymap[i][j]] || count[keymap[i][j]] > j){
count[keymap[i][j]] = j+1;
}
}
}
for(let target of targets){
let sum = 0;
for(let i=0; i<target.length; i++){
if(!count[target[i]]){
sum = -1;
break;
}
sum += parseInt(count[target[i]]);
}
answer.push(sum)
}
return answer;
}
https://school.programmers.co.kr/learn/courses/30/lessons/160586
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 게임 맵 최단거리 문제풀이 JS (0) | 2023.07.20 |
---|---|
[프로그래머스] 카드 뭉치 문제풀이 JS (0) | 2023.07.20 |
[프로그래머스] 덧칠하기 문제풀이 JS (0) | 2023.07.20 |
[프로그래머스] 바탕화면 정리 문제풀이 JS (0) | 2023.07.20 |
[프로그래머스] 공원 산책 문제풀이 JS (0) | 2023.07.20 |
Comments