inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

1-D

틀린이유를 모르겠습니다.

390

김민우

작성한 질문수 3

0

http://boj.kr/bb56fb4c3cc74a02bd1b68932deaec81

제가 작성한 코드이고 선생님의 코드와 유사하게 reverse함수를 이용하여 바꾼 문자열을 for문을 통해 돌며 원본의 문자열과 비교하여 같으면 ret에 1을 저장하여 출력 그렇지 않으면 0을 저장하여 출력하게 작성하였습니다.

답변 3

0

큰돌

아마 중괄호를 안하신게 아닌가 싶습니다.

한개 로직이 아닌이상 중괄호를 쓰시는게 좋습니다.

이렇게 해보시겠어요?

#include<iostream>
#include<algorithm>//reverse 사용을 위한 헤더추가 
using namespace std;
string s;
int ret;
int main() {
	cin >> s;
	string os = s;
	reverse(s.begin(), s.end());
	for (int i = 0; i < s.size(); i++) {
		if (s[i] == os[i])
			ret = 1;
		else{
		    ret = 0;
                    break;
        } 
	}
	cout << ret;
	return 0;
}

0

김민우

break;문을 저 위치에 추가 작성하였는데도 틀렸다고 뜹니다.. 다른 이유가 있을까요?

0

큰돌

안녕하세요 민우님 ㅎㅎ

잘 작성하셨는데요.

"다른 순간" break;를 걸어야 하지 않을까요?

예를 들어

aabbca

라고 했을 때

a : a

a : c 다르네? ret = 0

그리고!

b : b 같네 ret = 1

이렇게 되지 않을까요?

	for (int i = 0; i < s.size(); i++) {
		if (s[i] == os[i])
		    ret = 1;
		else{
		    ret = 0;
                    break;
                } 
	}

이렇게 한번 고쳐보시겠어요?

 

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

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

감사합니다.

강사 큰돌 올림.

케이테스트 서버 운영 방법

2

51

1

강의 추천해주세요

2

28

1

네트워크 전체 흐름 복습 질문

1

34

3

Sequence 관련 질문

1

32

2