문제 : https://www.acmicpc.net/problem/10809
풀이 방법
이 문제의 풀이 방법은 알파벳 개수 문제와 비슷한 유형입니다. (배열을 처음에 -1로 초기화를 해줍니다.) 단지 이 문제에서는 문자열이 어느 위치에서 나타났는지 찾아서 배열에 넣어주면 됩니다. 동일한 문자열이 나올 경우 문자열이 처음 등장한 위치를 넣어주면 되는데, 이 부분은 -1이 아닌 경우에는 문자열이 등장했다는 것을 나타내므로 값을 바꾸지 않고 continue 를 통해서 건너 뛰면 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 import java.io.*;public class BOJ10809 { public static void main (String[] args) throws IOException { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int [] checkArr = new int [26 ]; for (int i=0 ;i<checkArr.length;i++) checkArr[i]=-1 ; String input = bf.readLine(); for (int i=0 ;i<input.length();i++){ int idx = input.charAt(i)-97 ; if ((checkArr[idx]) == -1 ){ checkArr[idx] = i; }else continue ; } for (int i=0 ;i<26 ;i++) bw.write(checkArr[i]+" " ); bw.flush(); bw.close(); bf.close(); } }