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

정지욱님의 프로필 이미지
정지욱

작성한 질문수

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

1-K

1-K 다른 풀이

작성

·

94

0

저는 deque를 사용해서 풀었는데 이 풀이 방법이 괜찮나요??
#include <bits/stdc++.h>

using namespace std;

string name;

int cnt[26];

deque<char> answer;

int main() {

cin.tie(0)->sync_with_stdio(0);

cin >> name;

for (int i = 0; i < name.size(); i++) {

cnt[name[i] - 'A']++;

}

int check = 0;

for (int i = 0; i < 26; i++) {

if (cnt[i] % 2 == 1) {

check++;

answer.push_back('A' + i);

cnt[i]--;

}

if (check > 1) {

cout << "I\'m Sorry Hansoo";

return 0;

}

}

for (int i = 25; i >= 0; i--) {

while (cnt[i] > 0) {

answer.push_back('A' + i);

answer.push_front('A' + i);

cnt[i] -= 2;

}

}

while (!answer.empty()) {

cout << answer.front();

answer.pop_front();

}

return 0;

}

답변 1

0

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

안녕하세요 지욱님 ㅎㅎ

입력초기화, 변수 설정,

cnt[name[i] - 'A']++;

카운팅하는 것.

홀수개수 처리하는 로직 등

모두 잘하셨습니다. ㅎㅎ

좋은 코드네요.



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

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

감사합니다.

강사 큰돌 올림.

정지욱님의 프로필 이미지
정지욱

작성한 질문수

질문하기