| 문제
알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오.
| 입력
첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다.
| 출력
각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다.
만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다.
| 문제의 키 포인트
1. 단어는 알파벳 소문자로만 이루어져 있으며, 단어의 길이는 100을 넘지 않는다.
2. 단어에 포함되어 있는 경우 처음 등장하는 위치를 표시한다.
3. 포함되어 있지 않은 경우 -1을 출력한다.
| 해결방안
1. ASCII 코드에서 소문자값을 이용한다.
a = 97, ... z = 122
| 소스코드(SourceCode)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
char S[100] = { 0, }; // 입력받을 문자열 변수
int i, j; // 반복 변수
scanf("%s", S);
for (i = 97; i <= 122; i++)
{
j = 0;
while (S[j] != 0)
{
if (S[j] == (char)i) // 문자열에 포함된 경우
{
break;
}
else
{
j++;
}
}
if (S[j] == (char)i) // 문자열에 포함된 경우
{
printf("%d ", j);
}
else // 문자열에 포함되지 않은 경우
{
printf("-1 ");
}
}
return 0;
}
그럼 오늘도 즐거운 코딩!
| 문제 출처
https://www.acmicpc.net/problem/10809
10809번: 알파벳 찾기
각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출
www.acmicpc.net
반응형
'코딩 | 알고리즘 & 문제풀이 > 백준_Backjoon' 카테고리의 다른 글
[C언어] Backjoon_Code 1157, 단어 공부 (0) | 2021.07.08 |
---|---|
[C언어] Backjoon_Code 2675, 문자열 반복 (0) | 2021.07.07 |
[C언어] Backjoon_Code 11720, 숫자의 합 (0) | 2021.07.05 |
[C언어] Backjoon_Code 11654, 아스키 코드 출력하기 (0) | 2021.07.04 |
[C언어] Backjoon_Code 1065, 한수 구하기 (0) | 2021.07.03 |