https://school.programmers.co.kr/learn/courses/30/lessons/120896
정답
import java.util.*;
class Solution {
public String solution(String s) {
HashMap<Character,Integer> map = new HashMap<>();
ArrayList<Character> list = new ArrayList<>();
StringBuilder answer = new StringBuilder();
//각 문자별 빈도수 저장
for(int i=0; i<s.length(); i++)
{
map.put(s.charAt(i),map.getOrDefault(s.charAt(i),0)+1);
}
//빈도수가 1인 문자 리스트에 추가
for(Character c : map.keySet())
{
if(map.get(c)==1)
{
list.add(c);
}
}
//리스트 사전순으로 정렬
Collections.sort(list);
for(char c : list)
{
answer.append(String.valueOf(c));
}
return answer.toString();
}
}
다른 사람의 풀이
class Solution {
public String solution(String s) {
int[] alpha = new int[26];
for(char c : s.toCharArray()){
alpha[c - 'a']++;
}
StringBuilder answer = new StringBuilder();
for(int i = 0; i < 26; i++){
if(alpha[i] == 1){
answer.append((char)(i + 'a'));
}
}
return answer.toString();
}
}
'Java > 프로그래머스' 카테고리의 다른 글
[JAVA] 프로그래머스 - 가장 큰 수 찾기 (0) | 2024.05.05 |
---|---|
[JAVA] 프로그래머스 - 편지 (0) | 2024.05.05 |
[JAVA] 프로그래머스 - 인덱스 바꾸기 (0) | 2024.05.02 |
[JAVA] 프로그래머스 - 영어가 싫어요 (0) | 2024.05.02 |
[JAVA] 프로그래머스 - 대문자와 소문자 (0) | 2024.05.01 |