문제 출처: www.acmicpc.net/problem/10809
1. 코드
#include <stdio.h>
#include <string.h>
int main(void)
{
int arr[26], i, j;
char S[100];
scanf("%s", S);
for(i=0; i<26; i++)
arr[i]=-1;
for(i='a'; i<='z'; i++)
{
for(j=0; j<strlen(S); j++)
{
if(i==S[j])
{
arr[S[j]-'a'] = j;
break;
}
}
}
for(i=0; i<26; i++)
{
printf("%d", arr[i]);
if(i<25)
printf(" ");
}
return 0;
}
2. 느낀 점
우선 이 문제는 입력한 알파벳을 인식하고 입력된 순서의 수를 알파벳 순서로 나열된 배열에 표시하는 것인데 저 같은 경우에는 반복문을 실행할 때 알파벳을 넣고 이중 반복문으로 배열을 비교하는 방식으로 했습니다. 그리고 2번 인식하지않기위해 인식하면 break문으로 바로 반복문을 빠져나오게 했습니다.
이 문제를 풀면서 가장 어려웠던 것은 띄어쓰기 한번 더 했다는 실수를 몰랐던 것입니다. 예제를 입력하면 원활하게 잘 출력이 되는데 정답처리가 안되어서 고민하다가 설마 띄어쓰기가 문제인가 싶어서 if문으로 띄어쓰기를 맞추었더니 정답처리가 되었습니다.
'컴퓨터 > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 1157번: 단어 공부 C언어 (4) | 2019.12.27 |
---|---|
백준 알고리즘 2675번: 문자열 반복 C언어 (0) | 2019.12.23 |
백준 알고리즘 11720번: 숫자의 합 [Java] (0) | 2019.12.22 |
백준 알고리즘 1065번: 한수 C언어 (0) | 2019.12.20 |
백준 알고리즘 4673번: 셀프 넘버 C언어(개선) (0) | 2019.12.11 |