#48. 백준 10809번 문제 풀이: 알파벳 찾기 문제 원본 보기
알파벳 소문자로만 이루어진 단어 S가 있을 때, 각각의 알파벳에 대해서, 단어에서 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. 입력: 첫째 줄에 단어 S. 길이 100 이내의 알파벳 소문자로 구성. 출력: a부터 z까지 각 알파벳이 등장하는 위치, 없을 경우에는 -1을 출력, 첫 위치는 0으로 시작한다.
입력/출력
--입력--
baekjoon
--출력--
1 0 -1 -1 2 -1 -1 -1 -1 4 3 -1 -1 7 5 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
문제풀이+해설
반복문을 통해 S에 a~z까지 그 알파벳이 있는지 검사한다.
있으면 그 인덱스 값을, 없으면 -1을 출력해준다.
code sol.
#include <stdio.h>
#include <string.h>

int main() {
    char S[101]; // 문자열을 배열로 받아야함
    int ck = 0; // 알파벳 존재 여부 체크하기 위한 변수 선언
    int i, j, l=0;
  
    scanf("%s", S); // 알파벳으로 이루어진 단어 S를 입력받음
    
    for (i = 'a'; i <= 'z'; i++) { // 단어내에 a부터 z까지 존재여부 체크
        ck = 0; // 알파벳 존재 여부 체크하기 위한 변수 0으로 선언
        l = (int)strlen(S);
        for (j = 0; j < l; j++) { // 단어길이 만큼 반복
            if (S[j] == i) { // 단어의 알파벳과 같다면 인덱스 출력 후 체크
                printf("%d ", j);
                ck = 1;
                break;
            }
        }
        if (ck == 0) printf("-1 "); // 알파벳이 없으면 -1 출력               
    }
}
© 코드솔 - CodeSol. All Rights Reserved.