출처
백준 온라인 저지
문제
알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오.
첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다.
풀이
알파벳 a부터 z까지를 for 문을 돌릴 때 각 알파벳을 해당하는 아스키코드는 'a'는 97번이고, 'z'는 122번이기 때문에 97-122까지 반복 실행하고, 이 값을 String.fromCharCode 메서드를 사용하여 알파벳 문자을 생성해줍니다.
indexOf 메서드를 사용하여 만약에 값이 있다면 그 값의 index를 없다면 -1을 출력한 값을 출력해줍니다.
이 때 join 메서드를 사용하여 출력 형식을 맞춰주었습니다.
코드
const input = require("fs").readFileSync("/dev/stdin").toString();
const result = [];
for (let i = 97; i <= 122; i++) {
result.push(input.indexOf(String.fromCharCode(i)));
}
console.log(result.join(" "));
참고자료