← 학습 코스

서로 다른 이웃 문자

C++완성형

문자열도 순서대로 읽을 수 있어요

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]예요. 이웃 비교는 존재하는 두 인덱스만 대상으로 해요.

코드 작성과 채점은 로그인 후 이용해요

로그인하고 풀기