문자열도 순서대로 읽을 수 있어요
vector의 인덱스·반복을 알고 시작해요. string은 문자를 순서대로 담아요. <string> 헤더가 필요하고, text.size()는 길이, text[i]는 i번째 문자예요.
string text = "aba";
char first = text[0];
char는 여기서 문자 한 개를 담아요. 문자열에는 큰따옴표 "aba", 문자에는 작은따옴표 'a'를 써요. text[0] == text[2]는 참이고 text[0] != text[1]도 참이에요. !=는 다르다는 비교예요.
이웃을 비교할 때 첫 번호를 정해요
문자열 abbaa의 왼쪽 이웃과 현재 문자를 함께 읽어 봐요.
| 현재 인덱스 | 왼쪽 문자 | 현재 문자 | 서로 다른가요? |
|---|---|---|---|
| 1 | a | b | 예 |
| 2 | b | b | 아니요 |
| 3 | b | a | 예 |
| 4 | a | a | 아니요 |
총 두 번 달라져요. 인덱스 0의 왼쪽 이웃은 없어요. 비교하는 현재 인덱스를 1부터 시작하면 text[i-1]과 text[i]가 모두 존재해요. 문자 한 개뿐이면 비교할 이웃 쌍이 없어서 반복을 실행하지 않아요.
직접 풀어봐요
문자열 text에서 바로 이웃한 두 문자가 서로 다른 위치의 개수를 반환해요. abc에는 a-b, b-c 두 쌍이 있어 답은 2예요. 떨어진 문자는 비교하지 않아요.
text는 소문자 az로만 이루어져 있고 길이는 1100이에요. 실행용 입력은 text 한 줄, 출력은 반환값이에요. 하네스가 입력과 출력을 맡아요.
예시 1: aabcbc → 4. 첫 a-a를 제외한 네 쌍에서 문자가 달라져요.
예시 2: cccc → 0. 모든 이웃이 같아요.
예시 입력
aabcbc
예상 결과
4
예시 입력
cccc
예상 결과
0
핵심 개념
stl-string: string의 i번째 문자는 text[i]예요. 이웃 비교는 존재하는 두 인덱스만 대상으로 해요.