반갑습니다!

[백준] 1213 팰린드롬 만들기 본문

알고리즘 문제 풀이

[백준] 1213 팰린드롬 만들기

김덜덜이 2020. 12. 10. 00:06

풀이

문자열을 입력받은 뒤, 각 알파벳의 개수를 세어준다. 만약 모든 알파벳의 갯수가 짝수라면 팰린드롬이 가능하다. 하지만 알파벳의 갯수가 홀수일 경우가 2개 이상이라면 팰린드롬을 만들 수 없다. 그 외의 경우에는 모두 팰린드롬을 만들 수 있다.

정답은 사전 순서 중 가장 앞 순서에 오는 것이다. 사전 상 가장 앞에 오는 팰린드롬은 어렵지 않게 구할 수 있다. 이 경우는 갯수가 홀 수인 알파벳이 있을 때와 없을 때로 나뉘는데, 모든 알파벳의 갯수가 짝수인 경우는 'A' 부터 'Z' 순서로 미리 세어 둔 알파벳 갯수의 절반 만큼을 사용해서 문자열을 만들고, 해당 문자열을 뒤집은 문자열과 함께 출력해주면 된다. 그리고 한 개의 알파벳이 홀 수인 경우는 그 알파벳을 문자열과 뒤집은 문자열 사이에 넣어서 출력하면 된다.

코드

C++

'알고리즘 문제 풀이' 카테고리의 다른 글

[백준] 11723 집합  (0) 2021.09.02
[백준] 14438 수열과 쿼리 17  (0) 2020.12.04
[백준] 5676 음주 코딩  (0) 2020.12.02
[백준] 2268 수들의 합  (0) 2020.11.30
[백준] 1275 커피숍2  (0) 2020.11.29