강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của sunnyside01027580
sunnyside01027580

câu hỏi đã được viết

Luyện thi coding C++ trong 10 tuần | Coding test thuật toán

1-G

질문입니다

Đã giải quyết

Viết

·

146

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또한 앞과 뒤를 비교하는 코드를 작성했습니다. 선생님 강의를 듣고 처음 한글자가 아닌 *을 기준으로 문제를 풀어야한다는 것을 알게됬습니다. 그런데 위 코드에서 문법적인 오류가 있는 것 같은데 문법적으로만 왜 오류인지 궁금합니다.

감사합니다.

c++코딩-테스트

Câu trả lời 2

0

sunnyside0102님의 프로필 이미지
sunnyside0102
Người đặt câu hỏi

답변 감사합니다.

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

감사합니다

kundol님의 프로필 이미지
kundol
Người chia sẻ kiến thức

안녕하세요 ㅎㅎ

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

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

 

감사합니다.

0

kundol님의 프로필 이미지
kundol
Người chia sẻ kiến thức

안녕하세요 ㅎㅎ

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

>>

temp1 = S.begin();

temp2 = S.end();

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

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

image

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



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

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

감사합니다.

강사 큰돌 올림.


Hình ảnh hồ sơ của sunnyside01027580
sunnyside01027580

câu hỏi đã được viết

Đặt câu hỏi