1) Scanner 이용해서 풀이
● 두번 째 for문에서 조건을 걸지 않는다면 오답으로 처리 된다.
● 예) baekjoon 입력 시 1 0 2 -1 -1 -1 -1 -1 -1 4 3 -1 -1 7 6 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 이 출력되는데 arr[14]에서 6이 나오는
이유는 문자 'o'가 2번 나와서 그런 것..(중복되는 문자) 주의하자.
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
int[] arr = new int[26];
for (int i = 0; i < arr.length; i++) {
arr[i] = -1;
}
for (int i = 0; i < str.length(); i++) {
// 중복 문자가 나왔을 경우 조건으로 제한 최초 1회만 실행하도록 제한
char ch = str.charAt(i);
if (arr[ch-'a'] == -1) {
arr[ch-'a'] = i;
}
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
}
'알고리즘 정리' 카테고리의 다른 글
백준 1152번[문자열] 단어의 개수 (0) | 2021.10.20 |
---|---|
백준 1157번[문자열] 단어 공부 (0) | 2021.10.20 |
백준 2675번[문자열] 문자열 반복 (0) | 2021.10.20 |
백준 11720번[문자열] 숫자의 합 (0) | 2021.10.20 |
백준 11654번[문자열] 아스키코드 (0) | 2021.10.20 |