Computer Science
[백준] 알파벳 찾기 10809번
jhkang-dev
2018. 9. 27. 21:17
[백준] 알파벳 찾기 10809번
문제 링크 : https://www.acmicpc.net/problem/10809
오늘은 문자열 중에서도 알파벳 찾기 문제를 풀어볼게요!
이 문제를 풀기 위해서는 C++을 사용한 알파벳 출력과 문자열의 find() 함수를 사용해야 합니다.
C에서는 ASCII 코드를 사용 가능하여 다음과 같이 알파벳을 출력할 수 있어요.
1 2 3 4 5 6 7 8 9 10 11 12 | #include <stdio.h> int main() { char c; for (c = 'A'; c <= 'Z'; c++) { printf("%c", c); } return 0; } | cs |
즉 변수 C가 for문을 돌면서 1씩 증가하고 a, b, c, d, '''', z가 출력되게 됩니다.왜 그럴까요? C언어의 아스키코드 값 때문에 그렇습니다.(참조 : https://goo.gl/UHRmma)다음으로 문자열의 find() 함수에 대해 알아보죠.find 함수 : String 클래스의 함수로서 특정 문자열을 찾고, 그 시작 위치를 반환find(문자) : 인덱스 0부터 해당 문자를 찾고, 시작 위치를 반환한다.find(문자열) : 인덱스 0부터 해당 문자열을 찾고, 그 시작 위치를 반환한다.find(문자열, 시작위치) : 시작위치부터 문자열을 찾고, 시작위치를 반환한다.위 두 가지 개념을 사용하여 해당 문제를 풀면 코드는 다음과 같게 나와요.
12345678910111213141516171819 #include <iostream>#include <string>using namespace std;int main() {string str;cin >> str;int idx;for (char a = 'a'; a <= 'z'; a++) {idx = str.find(a);cout << idx << " ";}cout << '\n';return 0;}cs
9월 27일의 Daily 알고리즘은 이것으로 마칠게요