첫번째 제출한답
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String word = sc.next();
int[] arr = new int[26];
//배열 -1로 초기화
Arrays.fill(arr, -1);
for (int i = 0; i < arr.length; i++) {
arr[i] = word.indexOf((char)(i+97));
}
for (int i = 0; i < arr.length; i++) {
if(i!=25) {
System.out.print(arr[i]+" ");
} else {
System.out.print(arr[i]);
}
}
}
}
접근 -> 해당문자의 첫 출현위치를 구하려면 indexOf() 를 사용해야함
for문을 쉽게 돌리기 위해서 a~z의 아스키코드(97~122)로 indexOf를 돌림
결과-> 정답
총풀이시간 10분
indexOf() 메소드의 리턴값은 해당 요소의 첫번째위치(인덱스)를
리턴하지만 해당요소가 없을때는 -1을 리턴한다!!
따라서 Arrays.fill을 사용하지 않더라도 결과는 동일하다!!
97이 생각이 안나면 char 변수명 = 'a'를 활용해도 된대요! 그러나 i랑 더해줬으니 다시 형변환은 해줘야 하겠지요!
https://devyoseph.tistory.com/43