단어 S - 길이는 100을 넘지 않고 알파벳 소문자임.
각 알파벳이 등장하는 위치를 출력하고 알파벳이 나오지 않으면 -1을 출력한다.
#include <stdio.h>
#include <string.h>
int main(void){
char word[100] = {0};
char *s = word;
int an[26];
int i, j;
for(i=0; i<26; i++) an[i] = -1;
scanf("%s", word);
for(i='a'; i<='z'; i++){
for(j=0; j<strlen(s); j++){
if(s[j]==i){
an[s[j]-'a'] = j;
break;
}
}
}
for(i=0; i<26; i++) printf("%d ", an[i]);
return 0;
}
크기 100의 문자열, 포인터 변수를 선언한다. 답을 저장할 int형 배열을 선언하고 -1을 저장한다. 문자열을 포인터 변수에 입력받는다. 반복문을 이용해 문자열의 문자가 각 알파벳과 일치한지 확인하고 일치할경우 그 순서를 an배열에 저장한다. 마지막에 an배열을 출력해준다.
'BOJ(백준)' 카테고리의 다른 글
[C언어] 백준 1037 - 약수 (0) | 2021.02.07 |
---|---|
[C언어] 백준 - 10773 제로 (0) | 2021.02.06 |
[C언어] 백준 - 1차원 배열 (10818, 2562, 2577, 3052) (0) | 2020.09.30 |
[C언어] 백준 - while문(10952, 10951, 1110) (0) | 2020.08.30 |
[C언어] 백준 - for문(11021, 11022, 2438, 2439, 10871) (0) | 2020.08.29 |