728x90
문제설명
입력 & 출력
예제 출력 1
1 0 -1 -1 2 -1 -1 -1 -1 4 3 -1 -1 7 5 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
나의 풀이
a~z까지 알파벳 배열을 Array.from과 fromCharCode() 함수를 사용해서 만들어줍니다.
왼쪽 아스키코드표를 보면 97번 소문자 a를 시작으로 122번 소문자 z까지 나와있습니다.
이를 참고해서 우리가 원하는 알파벳은 소문자 a~z기 때문에 시작점에 97을 더해서 해당하는 문자를 생성합니다.
그러면 알파벳 배열이 다음과 같이 만들어지게 됩니다. ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
그리고 입력받은 단어 S의 길이만큼 반복하는 기본 for문을 사용합니다.
그리고 indexOf() 함수를 사용하여 문자열 S의 각 요소가 alphabet 배열에 존재한다면 해당 index를 없다면 -1을 result 배열에 넣어줍니다.
마지막으로 join()을 사용하여 공백으로 구분해서 출력하여 마무리해 줍니다.
refactoring ✅
알파벳을 직접 생성하지 않고 아스키코드를 사용한 방법입니다.
i의 시작과 끝을 97~122로 설정하고, indexOf() 메서드와 fromCharCode()를 사용하여 아스키 코드 번호를 문자로 반환받아 해당 index를 구해주었습니다.
위 코드는 아스키 코드 번호를 지정하지 않고 charCodeAt()을 사용하여 문자의 아스키 코드를 받아 i의 범위를 지정해 주었습니다.
참고 ❗
'Coding Test > 백준' 카테고리의 다른 글
[백준] 다이얼 (node.js, 5622번) (0) | 2024.04.01 |
---|---|
[백준] 문자열 반복 (2675번, node.js) (0) | 2024.03.27 |
[백준] 바구니 뒤집기 (10811번, node.js) (0) | 2024.03.20 |
[백준] 나머지 (3052번, node.js) (0) | 2024.03.19 |
[백준] 과제 안 내신 분..? (5597번, node.js) (0) | 2024.03.18 |