백준(C언어) 풀이/문자열

백준(C) 10809번 알파벳 찾기 풀이

개발윗미 2021. 7. 14. 16:45

C로 구현한 10809번 알파벳 찾기 문제 풀이입니다.

#include <stdio.h>

int main() {
    char input[100] = {0};
    scanf("%s", input);
    for(int i=97; i<=122; i++) {
        int num = 0;
        while(input[num] != 0) {
            if(input[num] == (char)i)
                break;
            num++;
        }
        if(input[num] == (char)i)
            printf("%d ", num);
        else
            printf("-1 ");
    }
}

 

소문자 알파벳 'a'~'z' 의 10진수는 97~122 입니다.

 

그렇기 때문에 각 알파벳을 비교하기 위해 for문 조건식을 97부터 122까지로 설정합니다.

 

해당 알파벳이 처음 등장하는 위치를 출력하기 위해 while문 조건식에 변수 input의 해당 자리가 0이 아닐 경우 

 

수행되도록 합니다. while문 내부에서는 if문을 설정해 입력된 알파벳과 i를 문자형으로 형변환한 값을 비교해서 

 

같을 경우 빠져나와 알파벳 위치를 출력해줍니다. 


https://www.acmicpc.net/problem/10809

 

10809번: 알파벳 찾기

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

www.acmicpc.net