문제
10809번: 알파벳 찾기
각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다.
www.acmicpc.net
💡 내 코드
Ver.1(C)
// [10809] 알파벳 찾기
// https://www.acmicpc.net/problem/10809
#include <stdio.h>
#include <string.h>
int main(void)
{
char s[100], cnt[26];
for(int i = 0 ; i < 26 ; i++)
cnt[i] = -1;
scanf("%s", s);
for(int i = 0 ; i < strlen(s) ; i++) {
for(int j = 0 ; j < 26 ; j++) {
if((s[i]-'a') == j && cnt[j] == -1)
cnt[j] = i;
}
}
for(int i = 0 ; i < 26 ; i++)
printf("%d ", cnt[i]);
}
Ver.2(C++)
// [10809] 알파벳 찾기
// https://www.acmicpc.net/problem/10809
#include <iostream>
#include <string>
using namespace std;
int main(void)
{
string s;
int cnt[26];
for(int i = 0 ; i < 26 ; i++)
cnt[i] = -1;
cin >> s;
for(int i = 0 ; i < s.size() ; i++) {
for(int j = 0 ; j < 26 ; j++) {
if((s[i] - 'a') == j && (cnt[j] == -1)) {
cnt[j] = i;
}
}
}
for(int i = 0 ; i < 26 ; i++) {
cout << cnt[i] << " ";
}
}
반응형
'Baekjoon > 문자열' 카테고리의 다른 글
[1157] 단어 공부 (0) | 2020.06.27 |
---|---|
[11720] 숫자의 합(C / C++) (0) | 2020.06.27 |
[8958] OX퀴즈 (0) | 2020.06.22 |
[1032] 명령 프롬프트 (0) | 2020.06.21 |
[2675] 문자열 반복 (0) | 2020.04.11 |