아 징ㅈ짜!!!
반례 조심
"aaabbb"는 "N"이 나와야 함.
import java.util.*;
class Solution {
//List<String> ans = new ArrayList<>();
int[] cntAlphas = new int[26];
public String solution(String input_string) {
int len = input_string.length();
for(int i=0; i<len; i++) {
char cur = input_string.charAt(i);
cntAlphas[cur - 'a']++;
//end처리를 안 하면... b가 3번으로 카운트 됨
boolean end = false;
//
for(int j=i+1; j<len; j++) {
//추가코드
if(j==len-1 && cur == input_string.charAt(j))
end = true;
//
if(cur != input_string.charAt(j)) {
i = j-1;
break;
}
}
//추가코드
if(end)
break;
//
}
//
String answer = "";
for(int i=0; i<26; i++) {
if(cntAlphas[i] > 1)
answer += (char) (i + 'a');
}
//System.out.println(cntAlphas[3]);
if(answer.equals(""))
answer = "N";
return answer;
}
}
다른 방법으로 풀어보았다
import java.util.*;
class Solution {
List<Character> list = new ArrayList<>();
public String solution(String input_string) {
for(int i=0; i<input_string.length() - 1; i++) {
if(list.contains(input_string.charAt(i))) continue;
boolean same = false;
if(input_string.charAt(i) == input_string.charAt(i+1))
same = true;
for(int j=i+2; j<input_string.length(); j++) {
if(!same){
if(input_string.charAt(i) == input_string.charAt(j)) {
list.add(input_string.charAt(i));
break;
}
} else {
if(input_string.charAt(i) != input_string.charAt(j)) {
same = false;
}
}
}
}
Collections.sort(list);
StringBuilder sb = new StringBuilder();
for(char l : list) {
sb.append(l);
}
if(list.size() ==0) sb.append("N");
return sb.toString();
}
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
쿼드압축 후 개수 세기 (1) | 2024.12.09 |
---|---|
[PCCP 모의고사 #1] 2번 - 체육대회 (0) | 2024.12.02 |
거리두기 확인하기 (0) | 2024.12.02 |
교점에 별 만들기 -- 마지막 테케가 안 됨 (0) | 2024.12.01 |
디펜스 게임 *** (1) | 2024.10.17 |