본문 바로가기
개발로그/알고리즘

프로그래머스 Lv.0 한 번만 등장한 문자

by 쩜징 2023. 7. 13.

프로그래머스 Lv.0 한 번만 등장한 문자


문자열 s가 매개변수로 주어지고, s에서 한 번만 등장한 문자를 사전 순으로 정렬해서 return하라!

한 번만 등장하는 문자가 없을 경우 빈 문자열을 return한다.

 

(ex)

s result
"abcabcadc" "d"

 

** 풀이 방법

 

문자열 s를 ArrayList에 저장하고,

list를 오름차순으로 정렬한다.

오름차순 : ArrayLIst이름.sort(Comparator.naturalOrder());

내림차순 : ArrayLIst이름.sort(Comparator.reverseOrder());

List<Character> list = new ArrayList<>();

for (int i = 0; i < s.length(); i++) {
    char ch = s.charAt(i);
    list.add(ch);
} list.sort(Comparator.naturalOrder());

list 원소의 빈도수를 계산하는 count 변수를 만들고,

빈도수를 계산해서 count가 1인 문자들을 answer에 하나씩 합친다.

public static int frequency​(Collection<?> c, Object o)

→ Collection객체에서 Object를 찾아서 그 개수를 리턴한다.

 int count = 0;
 
 for (int i=0; i<list.size(); i++) {
    count = Collections.frequency(list, list.get(i));
    if (count == 1)
        answer += list.get(i);
}

 

<> 전체 코드 </>

import java.util.*;
class Solution {
    public String solution(String s) {
        String answer="";
        int count = 0;
        List<Character> list = new ArrayList<>();
 
        for (int i = 0; i < s.length(); i++) {
            char ch = s.charAt(i);
            list.add(ch);
        } list.sort(Comparator.naturalOrder());
        for (int i=0; i<list.size(); i++) {
            count = Collections.frequency(list, list.get(i));
            if (count == 1)
                answer += list.get(i);
        }
        return answer;
    }
}

반응형

댓글