PS/Baekjoon Online Judge

[백준 10809] 알파벳 찾기 [C]

kimyoungrok 2021. 7. 13. 00:09

백준 - 10809


풀이

모두 소문자만 입력된다는 점을 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);
}

출처

 

10809번: 알파벳 찾기

각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출

www.acmicpc.net

 

'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