10809번: 알파벳 찾기
각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출
www.acmicpc.net
✅ 풀이
핵심 : indexOf(), String.fromCharCode(), join()
1. 아스키 코드를 이용하여 알파벳 배열을 만든다. (직접 입력해도 좋다. "abcdefghijklmnopqrstuvwxyz")
2. 알파벳 배열의 값과 주어진 문자열과 값을 비교하여 일치하는 값의 index를 구해 배열에 저장한다.
2-1 indexOf() 함수를 사용하여 index 값을 구한다.
2-2 이때 알파벳에 해당하는 값이 문자열에 없다면 -1을 자동으로 반환한다.
3. index 배열의 값을 join() 함수로 합쳐 문자열로 만들어서 출력한다.
3-1 배열.join(" ") 으로 값과 값 사이에 " " 을 넣어서 문자열로 합친다.
✅ 코드
const input = require("fs").readFileSync("/dev/stdin").toString();
/**
* a 의 아스키코드 = 97
* z 의 아스키코드 = 122
* 따라서 97부터 122까지 1씩 더하면서 배열에 값을 저장한다.
*/
const alphabet = []; // a ~ z 까지 문자를 저장할 배열
const indexArr = []; // 등장하는 위치를 저장할 배열
for (let i = 97; i <= 122; i++) {
alphabet.push(String.fromCharCode(i));
}
alphabet.forEach((char) => {
indexArr.push(String(input.indexOf(char)));
});
console.log(indexArr.join(" "));
'Programing > 백준' 카테고리의 다른 글
[백준/JS] 1152 - 단어의 개수 (0) | 2023.08.26 |
---|---|
[백준/JS] 2675 - 문자열 반복 (0) | 2023.08.26 |
[백준/JS] 11720 - 숫자의 합 (0) | 2023.08.22 |
[백준/JS] 11654 - 아스키 코드 (0) | 2023.08.21 |
[백준/JS] 9086 - 문자열 (0) | 2023.08.19 |
댓글