본문 바로가기
프로그래머스/[프로그래머스 - JAVA] Lv.0

[프로그래머스 - JAVA] 한 번만 등장한 문자

by 코딩하는 흰둥이 2023. 3. 12.

 

  • 내 풀이
import java.util.List;
import java.util.stream.Collectors;
import java.util.Collections;
import java.util.Arrays;

class Solution {
    public String solution(String s) {
        String answer = "";
        
        // 중복되는 문자 있는지 확인하는 변수 생성
        int count;

        // 사전순으로 정렬하기
        List<String> change = Arrays.asList(s.split(""));
        Collections.sort(change);

        for (int i = 0; i < change.size(); i++) {
            // 문자열 하나 돌때마다 count값을 초기화 해줘야함
            count = 0;
            for (int j = 0; j < s.length(); j++) {
            // 같은 문자가 있다면 count +1씩
            // Stirng.valueOf(s.charAt(j))로도 가능
                if (change.get(i).equals(""+s.charAt(j))) {
                    count++;
                }
            }
            if (count == 1) {
                answer += change.get(i);
            }
        }
        
        return answer;
    }
}

 

 

  • 다른 사람 풀이
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();
    }
}



import java.util.*;

class Solution {
    public String solution(String s) {

        HashSet<String> set = new HashSet<>();

        for (int i = 0; i < s.length(); i++) {
            String replace = s.replace(s.charAt(i) + "", "");
            if(s.length() - replace.length() == 1){
                set.add(s.charAt(i)+"");
            }
        }
        ArrayList<String> list = new ArrayList<>(set);
        Collections.sort(list);
        return String.join("", list);
    }
}

댓글