[ 백준 10809번 ] 알파벳 찾기
2021. 12. 13. 12:16ㆍ백준/단계별 문제
백준 10809번 / 7단계 / 알파벳 찾기
채점결과는 다음과 같다
메모리 | 시간 | |
1번째 방법 | 2024 KB | 0 ms |
문제 풀이
문자열을 입력받고 string 헤더파일에 있는 find 함수를 이용하면 문제를 쉽게 풀 수 있다
find 함수는 특정 알파벳 위치를 리턴해주는 함수이다 그 문자가 없으면 -1를 리턴한다.
1. 문자열 s를 입력받는다 반복문을 알파벳 개수 26만큼 돌려주면서 입력받은 문자열 s에서 find하무에 알파벳배열 인덱스 i에 있는값을 인자값을 넘겨주고 공백을 구분하면서 find함수 리턴값을(int)형으로 바꿔서 출력해준다.
i = 0
s = bd
alphabets = abcdefghijklmnopqrstuvwxyz
(int)s.find(alphabets[i]) = -1
문자열 s에는 b가없으므로 -1를 반환한다
i = 1
(int)s.find(alphabets[i]) = 0
문자열 s에는 b가 있으므로 b의 위치 인덱스 0번째를 반환한다
i = 2
(int)s.find(alphabets[i]) = -1
문자열 s에는 c가 없으므로 -1를 반환한다
i = 3
(int)s.find(alphabets[i]) = 1
문자열 s에는 d가 있으므로 d의 위치 인덱스 1번째를 반환한다
이렇게 해서 최종 출력값은
-1 0 -1 1 -1 -1 -1 -1 -1 -1 -1 ... 이렇게 출력이 된다
코드
#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
string alphabets = "abcdefghijklmnopqrstuvwxyz";
unsigned int i;
cin >> s;
for ( i = 0; i < alphabets.length(); i++ ) cout << (int)s.find(alphabets[i]) << " ";
}
'백준 > 단계별 문제' 카테고리의 다른 글
[ 백준 1157번 ] 단어 공부 (0) | 2021.12.23 |
---|---|
[ 백준 10809번 ] 문자열 반복 (0) | 2021.12.18 |
[ 백준 11720번 ] 숫자의 합 (0) | 2021.12.09 |
[ 백준 11654번 ] 아스키 코드 (0) | 2021.12.05 |
[ 백준 1065번 ] 한수 (0) | 2021.12.02 |