코딩테스트연습/[프로그래머스] Java

[프로그래머스] Java 코딩테스트 연습 - 한 번만 등장한 문자

_꼬마돌 2023. 8. 10. 22:34
반응형

[프로그래머스] Java 코딩테스트 연습 - 한 번만 등장한 문자

문제 출처

https://school.programmers.co.kr/learn/courses/30/lessons/120896

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제

문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.

 

풀이

split() 메서드로 문자열 s를 문자배열 str로 만들고 Arrays.sort() 메서드로 배열의 원소들을 정렬했다. 그러면 같은 문자들끼리 모여서 정렬되어서 반복문으로 중복되는 문자들을 세기 쉽기 때문이다.  

중복되는 문자들을 세기 위해 이중for문을 사용했다. 중복되는 문자들의 개수를 세기 위해 int변수 count를 선언하고 배열의 i번째 문자가 j번째 문자와 같다면 count가 1씩 증가되도록 했다. 어떤 문자의 개수가 1개 이상이라면 count는 2이상이 될 것이므로 count가 1일때만 answer에 해당 위치에 있는 문자를 담아 return했다.

 

소스코드

import java.util.Arrays;

class Solution {
    public String solution(String s) {
        String answer = "";
        String[] str = s.split("");
        
        Arrays.sort(str);
        
        for (int i = 0; i < str.length; i++) {
            int count = 0;
            for (int j = 0; j < str.length; j++) {
                if (str[i].equals(str[j])) {
                    count++;
                }
            }
            
            if (count == 1) {
                answer += str[i];
            }
        }
        
        return answer;
    }
}

 

반응형