문제 내용은 입력으로 문자열을 받고, a-z 순서대로 문자열이 처음 나온 인덱스 위치를 출력해주면 되겠다, 여기서 문자열이 존재하지 않는다면 -1을 출력해주면 된다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] split = br.readLine().split("");
char[] letters = new char[26];
for (int i = 0; i < letters.length; i++) {
letters[i] = (char) ('a' + i); // 'a'에서 시작해 알파벳을 순서대로 배열에 저장
}
int[] ans = new int[26];
Arrays.fill(ans, -1);
for (int i = 0; i < split.length; i++) {
for (int j = 0; j < letters.length; j++) {
if (split[i].charAt(0) == letters[j]) {
if (ans[j] == -1) {
ans[j] = i;
}
}
}
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < ans.length; i++) {
sb.append(ans[i] + " ");
}
System.out.println(sb.substring(0, sb.length() - 1));
}
}
문제를 풀어보자면 먼저 문자열을 쪼개서 배열에 담아주고 다음은 a-z까지 배열에 넣어준 후, int[] 배열도 만들어서 모두 -1을 넣어주자.
이후에는 입력받은 문자열을 a-z 중 어느 인덱스에 있는지 확인한 후, 해당 인덱스에 해당하는 int 배열에 업데이트를 해주면 되는데 -1일 때만 업데이트하고 그 외에는 넘어가면 되겠다.
문자열을 모두 확인한 뒤에는 int 배열 양식에 맞게 출력해주면 끝이다.
Leave a Reply