알고리즘
<백준> 10809번 알파벳 찾기
_으량_
2018. 1. 3. 15:14
반응형
문제
알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오.
출처:https://www.acmicpc.net/problem/10809
문제 해결 과정:
- 문자열을 받고 앞에서부터 한 알파벳씩 체크한다
- 알파벳 개수가 총 26개 이므로 크기가 26인 배열을 만들고 0번째는 a이다.
- 문자열에서 받은 알파벳이 처음 나온 알파벳이면 해당 배열에 위치를 넣는다.
- 만약 처음 나온 알파벳이 아니라면 지나간다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include<iostream> #include<string> using namespace std; int main() { int alphabet[26]; string S; cin >> S; fill_n(alphabet, 26, -1); for (int i = 0; i < S.length(); i++) { int place = S.at(i) - 97; if (alphabet[place] == -1) { alphabet[place] = i; } } for (int j = 0; j < 26; j++) { cout << alphabet[j]<<" "; } cout << endl; return 0; } | cs |
반응형