인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

Kouga님의 프로필 이미지

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

1-E

s.begin()또는 s.substr(0,1)과 char와의 비교는 어떻게하나요?

작성

·

235

0

안녕하세요

제가 1159번 문제를 풀다가 의문이 생겨서 질문 드립니다.

저는 문자열 첫글자를 s.begin()또는 s.substr(0,1)을 통해 추출한 후, 이를

for (int i = 0; i < a; ++i) {

for (int j = 0; j < 26; ++j) {

if (s[i].begin() == ('a' + j)) {

++cnt[j];

}

 

}

}

다음과 같은 방식으로 비교하려 하였습니다.

하지만, (s[i].begin() == ('a' + j)) 이 부분에서 둘이 비교할 수 없다면서 오류가 뜨더군요.

형변환을 시켜서 비교를 시도해보아도 오류는 사라지지 않았습니다.

이 둘은 어떻게 비교를 해야하나요?

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

일단 s.begin()는 이터레이터를 반환해요.

만약에 비교를 하고 싶다면 이렇게 하시면 됩니다.

#include <bits/stdc++.h>
using namespace std;
string s = "123"; 

int main() {
	if((char) * s.begin() == '1') cout << 1; 
	
	return 0;
}
Kouga님의 프로필 이미지

작성한 질문수

질문하기