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

GRstory님의 프로필 이미지
GRstory

작성한 질문수

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

1-K

1-K 질문이 있습니다.

작성

·

150

0

팰린드롬의 앞부분 + 중앙 + 뒷부분 을 출력하는 코드를 만들었습니다.

https://www.acmicpc.net/source/76353773

vs에서 볼때는 반례가 없어보이는데 백준에서는 오답이라고 나옵니다.

어디가 잘못된걸까요?

답변 2

0

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

다시보니 틀린게 있었네요. 감사합니다

0

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

안녕하세요 ㅎㅎ

전반적으로 잘 짜신 코드지만 몇몇 틀린 부분이 있어서

제가 좀 다듬어봤습니다.

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

#include <bits/stdc++.h>
using namespace std;

string s, answer1, answer2, answer;
int ss[26];
int c = -1;

int main() {
    cin >> s;

    for (char i : s) {
        ss[i - 'A']++;
    }

    int fail = 0;
    for (int i = 0; i < 26; i++) {
        if (ss[i] % 2 == 1) {
            fail++;
            c = i;
        }
    }

    if (fail > 1) {
        cout << "I'm Sorry Hansoo";
        return 0;
    }

    for (int i = 0; i < 26; i++) {
        for (int j = 0; j < ss[i] / 2; j++) {
            answer1 += (i + 'A');
        }
    }

    answer2 = answer1;
    reverse(answer2.begin(), answer2.end());

    if(c != -1) {
        answer1 += (c + 'A');
    }

    cout << answer1 + answer2;
}

 

 

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

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

감사합니다.

강사 큰돌 올림.

GRstory님의 프로필 이미지
GRstory

작성한 질문수

질문하기