# [Algorithm/JS] 백준 10809번 알파벳 찾기
# Question
알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오.
# Input
첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다.
# Output
각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다.
만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다.
# Example
# Input
baekjoon
1
# Output
65
1
# Solution
const input = require('fs').readFileSync('../input.txt').toString().trim();
const result = [];
for (let i = 97; i <= 122; i++) {
result.push(input.indexOf(String.fromCharCode(i)));
}
console.log(result.join(' '));
1
2
3
4
5
6
2
3
4
5
6
아스키코드에서 알파벳 소문자는 97 ~ 122 범위이기 때문에, 반복문을 아스키코드 범위만큼 반복하도록 작성했다.
아스키코드를 반환하는 fromCharCode
사용하여 input 값에 아스키코드에 해당하는 알파벳이 존재하는지, 존재한다면 인덱스값을 판별하고 result 배열에 할당했다.
배열 함수 join 을 사용해 공백을 표시한 문자열을 출력했다.