작성
·
412
0
안녕하세요. 큰돌님 강의 잘 듣고있습니다.
다름이 아니라 아래 코드에서 어떠한 이유로 통과가 안되는지 이유를 모르겠습니다. 감사합니다.
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] cnt = new int[26];
br.readLine().chars().forEach(i -> cnt[i - 'A']++);
boolean checkOdd = false;
char oddChar = '0';
StringBuilder sb = new StringBuilder();
for (int i = cnt.length - 1; i >= 0; i--) {
if (cnt[i] == 0) continue;
if (checkOdd && (cnt[i] & 1) == 1) {
sb.setLength(0); //
sb.append("I'm Sorry Hansoo");
break;
}
if ((cnt[i] & 1) == 1) {
oddChar = (char) (i + 'A');
checkOdd = true;
cnt[i]--;
}
for (int j = 0; j < cnt[i] / 2; j++) {
sb.append((char) (i + 'A'));
sb.insert(0, (char) (i + 'A'));
}
}
if (Character.isLetter(oddChar)) {
sb.insert(sb.length() / 2, oddChar);
}
System.out.print(sb.toString());
}
답변 2
0
0
if (checkOdd && (cnt[i] & 1) == 1) {
sb.setLength(0); //
sb.append("I'm Sorry Hansoo");
break;
}
// 를 아래와 같이 변경해서 해결했습니다.
// "I'm Sorry Hansoo"로 만들고 아래서 추가적인 문자열을 생성하고 있었습니다.
if (checkOdd && (cnt[i] & 1) == 1) {
System.out.println("I'm Sorry Hansoo");
return;
}