# [Algorithm/JS] 백준 10809번 알파벳 찾기

🔗 문제 바로가기 (opens new window)

# 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

아스키코드에서 알파벳 소문자는 97 ~ 122 범위이기 때문에, 반복문을 아스키코드 범위만큼 반복하도록 작성했다. 아스키코드를 반환하는 fromCharCode 사용하여 input 값에 아스키코드에 해당하는 알파벳이 존재하는지, 존재한다면 인덱스값을 판별하고 result 배열에 할당했다.

배열 함수 join 을 사용해 공백을 표시한 문자열을 출력했다.

Last Updated: 2022. 6. 5. 오후 3:42:39