인프런 커뮤니티 질문&답변
1-K 질문이 있습니다.
작성
·
211
0
팰린드롬의 앞부분 + 중앙 + 뒷부분 을 출력하는 코드를 만들었습니다.
https://www.acmicpc.net/source/76353773
vs에서 볼때는 반례가 없어보이는데 백준에서는 오답이라고 나옵니다.
어디가 잘못된걸까요?
답변 2
0
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점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.





