
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class Main {
public static void main(String args[]) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
char[] charset = reader.readLine().toCharArray();
int[] aphArr = new int[26];
for(int i = 0; i < aphArr.length; i++) {
aphArr[i] = -1;
}
for(int i = 0; i < charset.length; i++) {
int ascii = (int)charset[i]-97;
if(aphArr[ascii] == -1) {
aphArr[ascii] = i;
}
}
for(Integer key : aphArr) {
bw.write(key+ " ");
}
bw.write("\n");
reader.close();
bw.flush();
}
}
이전 문제인 알파벳 개수와 거의 비슷한 방식으로 풀었다.
문제 포인트라고 생각되는 부분은
처음 등장하는 위치를 기록해야 하기 때문에 한번 위치를 기록한 알파벳은 그다음부터 스킵해야 한다는 점.
그래서 애초에 결과 배열의 값을 전부 -1로 초기화
-1이 아닌 값은 첫 위치가 이미 저장되었다는 뜻으로 FOR문 돌면서 체크하여 SKIP
'PROGRAMMING > ALGORITHM' 카테고리의 다른 글
| [백준] 2960번 에라토스테네스의 체 JAVA (0) | 2021.04.21 |
|---|---|
| [백준] 10808번 JAVA (0) | 2021.04.20 |
| [백준] 10808번 JAVA (0) | 2021.04.18 |
| [백준] 1935번 후위 표기식2 JAVA (0) | 2021.04.15 |
| [백준] 17299번 오등큰수 JAVA (0) | 2021.04.13 |