풀이
모두 소문자만 입력된다는 점을 index로 이용하면 된다.
str[i] | 'a' | 'b' | " | " | 'y' | 'z' |
str[i] - 'a' | 0 | 1 | " | " | 24 | 25 |
str[i] - 'a' 를 index로 활용하여, 각 알파벳에 맞는 배열의 값에 처음으로 등장하는 위치(값)을 입력해주면 된다.
단, 중복해서 값이 들어가는 것을 방지하기 위해 배열의 요소 값이 0(초기값)일 때만 입력하도록 한다.
소스코드
#include <stdio.h>
int main(){
char str[101], cnt[26] = { 0, };
scanf("%s", str);
for (int i = 0; str[i] != '\0'; i++)
if (!cnt[str[i] - 'a'])
cnt[str[i] - 'a'] = i + 1;
for (int i = 0; i < 26; i++)
printf("%d ", cnt[i] - 1);
}
출처
'PS > Baekjoon Online Judge' 카테고리의 다른 글
[백준 10814] 나이순 정렬 [C] (0) | 2021.07.13 |
---|---|
[백준 10818] 최소, 최대 [C] (0) | 2021.07.13 |
[백준 9498] 시험 성적 [C] (0) | 2021.07.12 |
[백준 10172] 개 [C] (0) | 2021.07.12 |
[백준 10171] 고양이 [C] (0) | 2021.07.12 |