-
[JavaScript] 대충 만든 자판JavaScript_알고리즘 2024. 8. 7. 21:26
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/160586
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
2. 접근 방법
- 시간 제한: 1초
- 메모리 제한: 128MB
- 구현
3. 자바스크립트 코드
function solution(keymap, targets) { let answer = [] // 목표가 되는 값을 탐색 for (target of targets) { // 총 몇번의 횟수를 눌러야는지 체크 let total = 0 // 한 문자씩 탐색 for (tar of target) { // 최소 누르는 횟수 체크 let minValue = 10 ** 9 // 키보드 자판 반복 for (key of keymap) { // 인덱스를 통해서 몇번 누르는지 체크 const value = key.indexOf(tar) // 값이 있고 minValue 보다 작은 값인 경우 값 갱신 if (value < minValue && value !== -1) { minValue = value + 1 } } // total 값 갱신 total += minValue } // 초기 선언한 값보다 큰 경우 -1 로 갱신해줌 만들 수 없기 때문에 if (total >= 10 ** 9) { total = -1 } answer.push(total) } return answer; }
4. 문제를 풀고난 후 생각
- 문자열을 반복돌리며 인덱스 탐색을 진행하며 최소한으로 누르는 횟수를 체크해주는 식으로 문제를 풀었다.
- 만약 최소한으로 누를 수 있는 번호가 없는 경우 그 문자는 누를 수 없기 때문에 마지막 부분에 -1 로 갱신해주는 방식으로 접근함.
5. 문제를 푸는데 도움이 되는 지식
- IndexOf
'JavaScript_알고리즘' 카테고리의 다른 글
[JavaScript]호텔 대실 (1) 2024.09.05 [JavaScript]무인도 여행 (7) 2024.09.03 [JavaScript] 크기가 작은 부분 문자열 (0) 2024.08.07