반응형
-해법
import java.util.Scanner;
import java.util.Arrays;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
String s = in.next();
int arr[] = new int[26];
Arrays.fill(arr, -1);
for(int i = 0; i<s.length();i++){
if(arr[s.charAt(i)- 97] == -1)
arr[s.charAt(i)- 97] = i;
}
for(int i =0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
in.close();
}
}
이번 문제도 다시 풀어보는 문제인데, 생각 외로 복잡하게 풀어버렸다... ㅋㅋㅋ
1. 알파벳 수의 배열을 선언 후, -1로 초기화
2. 입력받은 문자열에서 문자를 추출 후, -97을 통해 인덱스로 활용하여 해당 위치 값을 배열에 저장 ( a는 아스키코드 값이 97이므로 a는 0, b는 1... 식으로)
3. 출력
알고보니 단순히 String 클래스의 indexOf() 메서드의 사용법에 대해서 묻는 문제였다. indexOf()는 특정 문자의 위치를 반환하며, 존재하지 않을 경우 -1을 반환하는 메서드이다.
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String word = sc.next();
for (char c = 'a' ; c <= 'z' ; c++)
System.out.print(word.indexOf(c) + " ");
}
}
이렇게 a~z의 반복문을 통해 입력된 문자열에서 각각의 알파벳이 등장하는 위치인 인덱스 값을 출력만 해주면 된다!
바보 같다!
반응형