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

sunnyside0102님의 프로필 이미지
sunnyside0102

작성한 질문수

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

1-G

질문입니다

해결된 질문

작성

·

89

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

안녕하세요.

다음은 제가 처음에 푼 코드입니다.

#include <bits/stdc++.h>

using namespace std;

int N;

string S,temp1,temp2,Q;

int main(){

cin>>N;

cin>>S;

temp1 = S.begin();

temp2 = S.end();

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

cin >> Q;

if(Q.begin() == temp1 && Q.end() == temp2){

cout<<"DA\n";

}

else cout<<"NE\n";

}

}

저는 앞뒤글자들을 temp1,temp2에 저장해두고 새로 입력 받은 string또한 앞과 뒤를 비교하는 코드를 작성했습니다. 선생님 강의를 듣고 처음 한글자가 아닌 *을 기준으로 문제를 풀어야한다는 것을 알게됬습니다. 그런데 위 코드에서 문법적인 오류가 있는 것 같은데 문법적으로만 왜 오류인지 궁금합니다.

감사합니다.

답변 2

0

sunnyside0102님의 프로필 이미지
sunnyside0102
질문자

답변 감사합니다.

그러면 혹시 의도대로 코드를 수정하려면 어떻게 해야하나요?

감사합니다

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

안녕하세요 ㅎㅎ

    int pos = ori_s.find('*');  
    pre = ori_s.substr(0, pos); 
    suf = ori_s.substr(pos + 1); 

이런식으로 이터레이터가 아닌 -> 문자열을 기반 -> 부분문자열을 기준으로 비교하는 로직을 구축하시면 됩니다.

 

감사합니다.

0

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

안녕하세요 ㅎㅎ

선생님 강의를 듣고 처음 한글자가 아닌 *을 기준으로 문제를 풀어야한다는 것을 알게됬습니다. 그런데 위 코드에서 문법적인 오류가 있는 것 같은데 문법적으로만 왜 오류인지 궁금합니다.

>>

temp1 = S.begin();

temp2 = S.end();

if(Q.begin() == temp1 && Q.end() == temp2){

앞의 코드처럼 이터레이터를 비교해서 문자열을 비교할 수 있을까요?

image

교안내의 1.6 이터레이터 부분 참고부탁드립니다.



또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


sunnyside0102님의 프로필 이미지
sunnyside0102

작성한 질문수

질문하기