백준 1213 팰린드롬 만들기(JAVA)

2024. 8. 3. 16:06·PS(Problem Solving)/JAVA

문제 설명

https://www.acmicpc.net/problem/1213

 

풀이과정

 팰린드롬으로 만들려면 알파벳의 개수가 홀수개인 것이 2개보다 적어야 하고, 만약 홀수인 알파벳이 있다면 그 알파벳이 중간에 들어가야 팰린드롬이 된다.

 

정답코드

import java.io.*;
import java.util.*;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
//        StringTokenizer st = new StringTokenizer(br.readLine());

        String name = br.readLine();

        int[] arr = new int[26];
        int oddCnt = 0;
        int middle = 0;
        // 홀수인 알파벳이 2개 이상이면 펠린드롬 불가.
        // 홀수인 알파벳이 중간에 들어가야 펠린드롬이 된다.

        for (int i = 0; i < name.length(); i++) {
            arr[name.charAt(i) - 'A']++;
        }

        for (int i = 0; i < 26; i++) {
            if (arr[i] % 2 != 0) {
                oddCnt++;
                middle = i;
            }
        }

        if (oddCnt >= 2) {
            bw.write("I'm Sorry Hansoo");
            bw.flush();
            return;
        }

        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < 26; i++) {
            for (int j = 0; j < arr[i] / 2; j++) {
                sb.append((char) (i + 'A'));
            }
        }

        String front = sb.toString();

        if (oddCnt == 1) {
            front += (char) (middle + 'A');
        }

        String back = sb.reverse().toString();

        bw.write(front + back);
        bw.flush();
    }
}
저작자표시 비영리 변경금지 (새창열림)
'PS(Problem Solving)/JAVA' 카테고리의 다른 글
  • 백준 3986 좋은 단어(JAVA)
  • 백준 1940 주몽(JAVA)
  • 백준 9375 패션왕 신해빈(JAVA)
  • 백준 1620 나는야 포켓몬 마스터 이다솜(JAVA)
SiwonHae
SiwonHae
프로그래밍을 공부하고 있는 학생입니다.
  • SiwonHae
    시원해의 블로그
    SiwonHae
  • 전체
    오늘
    어제
    • 전체보기 (150)
      • PS(Problem Solving) (95)
        • C (25)
        • C++ (33)
        • JAVA (37)
      • Algorithm & Data Structure (13)
      • Computer Science (12)
        • Network (2)
        • Design Pattern (10)
      • Back-end (6)
        • Spring (5)
      • Front-end (1)
        • React (1)
      • JAVA (4)
      • 정보처리기사 (17)
      • SQLD (2)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
  • 인기 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
SiwonHae
백준 1213 팰린드롬 만들기(JAVA)
상단으로

티스토리툴바