프로그래머스/JAVA/한 번만 등장한 문자

Seoung Young Oh·2022년 12월 26일
0

프로그래머스

목록 보기
73/105

문제설명

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

제한사항

  • 0 < s의 길이 < 1,000
  • s는 소문자로만 이루어져 있습니다.

입출력 예

sresult
"abcabcadc""d"
"abdc""abcd"
"hello""eho"

입출력 예 설명

입출력 예 #1

  • "abcabcadc"에서 하나만 등장하는 문자는 "d"입니다.

입출력 예 #2

  • "abdc"에서 모든 문자가 한 번씩 등장하므로 사전 순으로 정렬한 "abcd"를 return 합니다.

입출력 예 #3

  • "hello"에서 한 번씩 등장한 문자는 "heo"이고 이를 사전 순으로 정렬한 "eho"를 return 합니다.

풀이

1. 중복이 제거된 배열 얻기
2. 중복이 제거된 배열로 원본 배열의 중복횟수 확인
3. 중복 횟수가 1인 문자열만 answer에 더 해준다.
import java.util.Arrays;

class Solution {
	public String solution(String s) {
		String answer = "";

		//중복제거
		String[] arr = Arrays.stream(s.split(""))
        	.distinct()
        	.sorted()
        	.toArray(String[]::new);
		
        //중복횟수 확인
        for (int i = 0; i < arr.length; i++) {
			String a = arr[i];
			int duplication = (int) Arrays.stream(s.split(""))
            	.filter(x -> x.equals(a))
            	.count();

			if (duplication == 1) {
				answer += a;
			}
		}
		return answer;
	}
}

참고

0개의 댓글