문제설명
입력 & 출력
나의 풀이
먼저 상근이는 전화번호를 문자로 외우기 때문에 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 값을 더해주어 마무리했습니다.
참고 ❗
'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 |