
사진 출처 : https://www.acmicpc.net/

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class String6 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String S = br.readLine();
int[] num = new int[26];
for (int i = 0; i < num.length; i++) {
num[i] = -1;
}
for (int i = 0; i < S.length(); i++) {
char ch = S.charAt(i);
if (num[ch - 'a'] == -1) num[ch - 'a'] = i;
}
for (int var : num) {
System.out.print(var + " ");
}
}
}
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String S = br.readLine();
int[] num = new int[26];
for (int i = 0; i < num.length; i++) {
num[i] = -1;
}
S에 원하는 단어 적은 후, 알파벳 총 개수는 26개로 배열 안에 -1을 26개 삽입
for (int i = 0; i < S.length(); i++) {
char ch = S.charAt(i);
if (num[ch - 'a'] == -1) num[ch - 'a'] = i;
}
for (int var : num) {
System.out.print(var + " ");
}
첫 번째 반복문에서 해당 글자 기준 자리를 찾게 되면 그 자리에 번호를 매김하는 형식으로 해결했다. 예를 들어 S단어 한 글자 씩 떼서 ch에 삽입 후, 검사하려는 첫 번째 글자가 c라면 'c' - 'a' 는 67 - 65 = 2이므로 배열 기준 세 번째 자리에 순서가 매김 된다.
두 번째 반복문에선 총 결과를 출력하는 형식이다.
