문제
https://www.acmicpc.net/problem/10809
10809번: 알파벳 찾기
각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다.
www.acmicpc.net
소스
#include <iostream>
#include <string>
using namespace std;
char al[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i',
'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
'u', 'v', 'w', 'x', 'y', 'z'};
int main(void) {
string s;
cin >> s;
int answer[26];
for (int i = 0; i < 26; i++) {
answer[i] = -1;
}
for (int i = 0; i < 26; i++) {
for (int j = 0; j < s.length(); j++) {
if (al[i] == s[j]) {
answer[i] = j;
break;
}
}
}
for (int i : answer) {
cout << i << " ";
}
return 0;
}
어려운 문제는 아니었지만 지금보니 아쉬운 코드..
알파벳을 저렇게 배열로 저장할 게 아니라 string al = "abcd...xyz"; 이렇게 저장했으면 더 깔끔할 것 같다.
'개인 공부 > 코딩테스트' 카테고리의 다른 글
[C++][백준 2908][문자열 처리] 상수 :: seoftware (0) | 2020.02.16 |
---|---|
[C++][백준 1157][문자열 처리] 단어 공부 :: seoftware (0) | 2020.02.16 |
[C++][백준 1152] [문자열 처리] 단어의 개수 :: seoftware (1) | 2020.02.16 |
[C++][백준 11654][문자열 처리] 아스키 코드 :: seoftware (0) | 2020.02.16 |
[C++][프로그래머스] 타겟넘버 - 깊이/너비 우선 탐색(DFS/BFS) :: seoftware (0) | 2020.02.11 |
댓글