import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 알파벳 상태 출력할 배열 생성 및 초기값 -1로 지정
int arr[] = new int[26];
for (int i = 0; i < arr.length; i++) {
arr[i] = -1;
}
// 단어 입력
String word = br.readLine();
// word 의 문자열 처음부터 끝자리까지 16진수 아스키코드 번호 추출
for (int i = 0; i < word.length(); i++) {
char ch = word.charAt(i);
// 해당 배열의 값이 -1이면 i값으로 대입
// (반복되는 문자가 있을 시 첫번째 문자의 자리값이 들어가야 함)
if(arr[ch - 97] == -1) {
arr[ch- 97] = i;
}
}
// 출력
for(int val : arr)
System.out.print(val + " ");
}
}
위의 문제에서는 입력된 단어에서 사용된 알파벳들이 각각 몇번째 자리에 들어가있는지를 배열을 통해 출력하는 문제이다.
먼저 알파벳의 총 길이와 같은 26칸 짜리의 배열을 생성해준 뒤, -1로 초기값을 지정해준다.
이후 문자를 입력받아서 반복문을 이용하여 아스키코드의 번호값을 구한 뒤,
문자'a'의 아스키 번호인 97을 빼게 되면
arr
배열의 해당하는 알파벳 자리로 반복문 i의 값이 들어가게 된다.