import java.util.Scanner;
public class Zalphbet_10809 {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
int[] alph = new int[26];
for (int a = 0; a < 26; a++) {
alph[a] = a+101;
}
for (int b = 0; b < str.length(); b++) {
char tmp = str.charAt(b);
for (int k = 0; k < 26; k++) {
if ((tmp+4) == alph[k]) {
alph[k] = b;
}
}
}
for (int c = 0; c < 26; c++) {
if (alph[c] >= 101) {
alph[c] = -1;
}
}
for (int i = 0; i < 26; i++) {
System.out.print(alph[i]+" ");
}
}
}
알파벳 26개가 들어갈 수 있는 int배열을 생성하고, 101부터 숫자가 차례대로 들어갈 수 있도록 초기화했다.
입력받은 string의 길이만큼 반복문을 돌면서, 해당 알파벳이 몇번째 알파벳인지 확인했다.
int배열을 101부터 시작했기 때문에, tmp에 4를 더하면 a부터 z까지 모두 확인할 수 있다.
알파벳의 자리를 찾았다면, string에서의 몇번째인지를 해당 알파벳 배열의 자리에 넣어준다.
그리고 값이 변하지 않은 (101이상인) 숫자를 가진 알파벳 배열은 모두 -1로 초기화 한다.
아스키코드로 풀어보려고 해서 처음에 97보다 큰 숫자면(소문자가 97부터 시작) 다 -1로 바꿨더니 답이 틀렸다. 입력받은 stirng의 길이가 98일 수도 있기 때문이다.
그래서 아스키코드보다 4를 더한 값인 101로 풀었더니 정답이었다!!!
항상 질문게시판에 글을 쓰려고 들어가면 내 코드의 문제가 보이는 것 같다.
'JAVA' 카테고리의 다른 글
[JAVA][백준] 10989_수 정렬하기 3 (BufferedReader) (0) | 2024.04.16 |
---|---|
[JAVA][백준] 1978_소수 찾기 (0) | 2024.04.15 |
[JAVA][백준] 8958_OX퀴즈 (0) | 2024.04.15 |
[JAVA][백준] 3052_나머지 (0) | 2024.04.15 |
[JAVA][백준] 1152_단어의 개수 (0) | 2024.04.15 |