• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

1-K 질문이 있습니다.

24.04.04 20:10 작성 조회수 84

0

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

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

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

어디가 잘못된걸까요?

답변 2

·

답변을 작성해보세요.

0

GRstory님의 프로필

GRstory

질문자

2024.04.08

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

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점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.