728x90
반응형
https://www.acmicpc.net/problem/1213
풀이
글자를 입력받고 alpha배열로 1글자씩 갯수를 세줍니다.
글자 길이가 홀수인데 1개뿐인 숫자가 여러개거나, 글자의 길이가 짝수인데 1개뿐인 숫자가 있거나 하면 "I'm Sorry Hansoo"를 출력해줍니다.
아닐 경우 갯수가 짝수인 글자들을 더해주고, 홀수인 글자가 있으면 더한 후, 짝수인 글자들을 뒤집어서 더해주면 됩니다.
소스코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
int[] alpha = new int[26];
for(char ch : s.toCharArray()) {
alpha[ch - 'A']++;
}
int n = 0, mid = 0;
for(int i = 0; i < 26; i++) {
if(alpha[i] % 2 == 1) {
mid = i;
n++;
}
}
StringBuilder sb = new StringBuilder();
if((s.length() % 2 == 1 && n > 1) || (s.length() % 2 == 0 && n > 0)) {
sb.append("I'm Sorry Hansoo");
}
else {
String answer = "";
for(int i = 0; i < 26; i++) {
for(int j = 0; j < alpha[i] / 2; j++) {
answer += (char)(i + 'A');
}
}
String rev = new StringBuilder(answer).reverse().toString();
if(n == 1) {
answer += (char)(mid + 'A');
}
sb.append(answer + rev);
}
System.out.print(sb);
}
}
728x90
반응형
'백준 > 1 - 5000' 카테고리의 다른 글
[백준] 1003번 : 피보나치 함수(JAVA) (0) | 2021.08.23 |
---|---|
[백준] 2749번 : 피보나치 수 3(JAVA) (0) | 2021.08.21 |
[백준] 1912번 : 연속합(JAVA) (0) | 2021.08.07 |
[백준] 4889번 : 안정적인 문자열(JAVA) (0) | 2021.07.30 |
[백준] 1918번 : 후위 표기식(JAVA) (0) | 2021.07.27 |
댓글