문제 이해
- 문자열이 회문의 순열인지 아닌지를 판단하라
해결 전략
- 배열을 이용해서 문자열의 각 문자의 개수를 저장한다.
- 회문의 순열이기 위해서는 홀수인 문자의 개수가 없거나, 하나만 존재해야 한다.
구현
import java.util.*;
public class Main {
public boolean solution(String s){
int[] arr = new int[30];
int oddCnt = 0;
s = s.toLowerCase();
for(int i=0; i<s.length(); i++){
int pos = s.charAt(i)-97;
if(0<=pos && pos<=25){
arr[pos] += 1;
}
}
for(int i=0; i<=25; i++){
if(arr[i] % 2 == 1){
oddCnt += 1;
}
}
if(oddCnt <= 1){
return true;
}else{
return false;
}
}
public static void main(String[] args){
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str=kb.nextLine();
System.out.println(T.solution(str));
}
}
피드백
- 회문의 성립 조건을 잘 생각해야 한다.
'PS' 카테고리의 다른 글
자바(Java) 알고리즘 문제 풀이 - 미로탐색(DFS) (0) | 2022.04.13 |
---|---|
코딩 인터뷰 완전 분석 1.5 하나 빼기 (0) | 2022.04.11 |
코딩 인터뷰 완전 분석 1.3 URL화 (0) | 2022.04.11 |
코딩 인터뷰 완전 분석 1.2 순열 확인 (0) | 2022.04.11 |
코딩 인터뷰 완전 분석 1.1. 중복이 없는가 (0) | 2022.04.11 |