문제설명
입력 & 출력
나의 풀이
먼저 상근이는 전화번호를 문자로 외우기 때문에 split()로 분리하여 str에 받아줍니다.
그리고 각 다이얼에 매칭하는 알파벳을 배열형태로 arr에 저장해 주었습니다.
그리고 이중 for문을 사용합니다. 왜냐하면 각 i로 배열의 요소를 모두 접근해야 하고, j에서 입력받은 str문자열을 하나씩 접근해야 하기 때문입니다.
다이얼 1번 ➡ 2초
다이얼 2번 ➡ 3초
다이얼 3번 ➡ 4초...
문제의 설명처럼 전화를 걸기 위한 시간은 위와 같습니다.
다이얼 2번 (Index:0) ➡ 3초
다이얼 3번 (Index:1) ➡ 4초
다이얼 4번 (Index:2) ➡ 5초
그러나 배열의 첫 번째 요소는 0이기 때문에 위와 같이 index + 3이라는 공식이 성립됩니다.
즉 +1을 더해주어야 합니다.
그리고 includes() 메서드를 사용하여 arr의 각 요소에 str문자열 요소가 존재한다면 cnt에 3을 더해주어 마무리해주었습니다.
refactoring ✅
"나의 풀이"와 다르게 이번 코드에서는 문자열 key를 사용할 수 있도록 객체를 사용했습니다.
"나의 풀이"에서 설명했듯이 알파벳이 존재하는 다이얼의 시작을 3을 시작으로 다이얼을 완성시켜 줍니다.
입력된 문자열의 길이만큼 반복하는 for문을 사용합니다. 그러면 "나의 풀이"와 다르게 알파벳을 모두 접근하지 않을 수 있습니다.
그리고 객체를 접근할 수 있는 for in문 1개를 사용하여 만약에 각 알파벳을 가져옵니다.
가져온 각 알파벳 문자열에 includes() 메서드를 사용하여 입력받은 문자열 str의 요소가 존재한다면 alphabets 객체의 value 값을 더해주어 마무리했습니다.
참고 ❗
(JavaScript) 객체(Dictionary) 알아보기
1. 객체(Object) 배열에서는 아이템에 대한 식별자(인덱스)로는 숫자를 사용했습니다. 그렇기 때문에 인덱스를 사용해서 데이터에 접근할 수가 있었습니다. 그러나 숫자가 아닌 문자를 사용하기
pixx.tistory.com
[JavaScript] 반복문(loop) 정리 for / for in / for of / foreach
JavaScript의 반복문은 특정 작업을 반복적으로 할 때 사용할 수 있는 구문입니다. 가장 전형적인 for문을 시작으로 다양한 종류의 반복문들이 있습니다. 각 반복문마다 장점이 있고, 성능 또한 차
pixx.tistory.com
[JavaScript] 문자열 포함 여부 함수 (indexOf, search, includes, startsWith, endsWith)
1. indexOf HTML 삽입 미리보기할 수 없는 소스 구문 searchValue (필수) 검색하고 싶은 문자열 대소문자를 구분하며, 아무 값도 주어지지 않으면 문자열 "undefined"를 찾으려는 문자열로 사용합니다. fromIn
pixx.tistory.com
'Coding Test > 백준' 카테고리의 다른 글
[백준] 단어 공부 (node.js, 1157번) (1) | 2024.04.05 |
---|---|
[백준] 별 찍기 - 7 (node.js, 2444번) (0) | 2024.04.04 |
[백준] 문자열 반복 (2675번, node.js) (0) | 2024.03.27 |
[백준] 알파벳 찾기 (10809번, node.js) (0) | 2024.03.26 |
[백준] 바구니 뒤집기 (10811번, node.js) (0) | 2024.03.20 |