[ 백준 10809번 ] 알파벳 찾기

2021. 12. 13. 12:16백준/단계별 문제

백준 10809번 / 7단계 / 알파벳 찾기

 

백준 10809번 - 알파벳 찾기

 

채점결과는 다음과 같다

  메모리 시간
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