
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String str = br.readLine();
for(int i=0;i<str.length();i++){
for(int j=97;j<=122;j++){
if(j==str.charAt(i)){
bw.write(String.valueOf(i)+" ");
}
}
// if문이 작동하지 않았을 때만 bw.wirte(String.valueOf(-1)+" ")가 작동하게 코드를 적어줘야 하는데 실패했다.
}
bw.flush();
bw.close();
br.close();
}
}
실패했고 다른 풀이방법을 생각해봤다.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
// 그니까 핵심은 알파벳 전체 표를 출력하는거임
String str = br.readLine();
int[] position = new int[26]; // 알파벳 소문자 개수
for(int i=0;i<position.length;i++){ // 전부 -1로 초기화
position[i] = -1;
}
for(int i=0;i<str.length();i++){
int a = str.charAt(i)-'a';
if(position[a]==-1){ // 중복 체크
position[a] = i;
}
}
for(int i=0;i<position.length;i++){ // position 배열 전부 출력
bw.write(position[i]+" ");
}
bw.flush();
bw.close();
br.close();
}
}
알파벳 소문자 개수만큼의 배열을 선언하는게 핵심이었다.