[백준 10809번] 알파벳 찾기
[백준 10809번] 알파벳 찾기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | package _1월_4주차; import java.util.Scanner; import java.util.Arrays; public class 백준_손수경_정답_10809 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String alpha = sc.nextLine(); int[] asciiAlpha = new int[100]; int[] ans = new int[26]; //아스키 코드로 알파벳 소문자 숫자: 97~122 int size = alpha.length(); Arrays.fill(ans, -1); for (int i = 0; i < size; i++) { asciiAlpha[i] = (int)alpha.charAt(i); } for (int i = 0; i < size; i++) { int index = asciiAlpha[i] - 'a'; if (ans[index] != -1) { continue; } ans[index] = i; } for (int i = 0; i < 26; i++) { System.out.printf("%d ", ans[i]); } } } | cs |
알파벳이 없다면 -1을 출력하라고 했으므로 ans
배열에 처음부터 Arrays.fill(배열, 채울 숫자) 를 사용하여서 -1로 채워놓았다. 그 후 문자열의 문자 하나하나를 아스키코드 숫자로 바꾸어서 asciiAlpha
배열에 넣어주고, 아스키코드를 활용하여서 인덱스를 만들어 주었다. 이때, 같은 문자가 2번이상 나올 경우, 처음의 인덱스만 출력해야되므로 continue 를 사용하여 처리해주었다.
! 중요 !
- 자바에서 문자열의 문자를 사용하려면 인덱스를 사용하는 것이 아닌 .charAt(index) 를 사용해주어야 한다.
- 배열의 길이를 구하기 위해서는 length를 사용해야되고 문자열의 길이를 구하기 위해서는 length() 를 사용해주어야 한다.
댓글남기기