JAVA 공부

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

hakstroy 2024. 12. 17. 09:50

 

문제 설명

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

 

제한 사항

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

 

 

입출력 예

입출력 예 설명

 

입출력 예 #1

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

입출력 예 #2

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

입출력 예 #3

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

 

 

나의 풀이

/*
2024-12-17
매개변수 : 문자열 s
문제 : s 문자열에서 1번만 등장하는 문자를 사전순으로 정렬한 문자열을 return
*/
import java.util.*;

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; // 같은 문자 갯수 count 하기 위함.
            for(int j=0; j<str.length; j++){ // 같은 문자열 찾기 위한 반복문  
                if(str[i].equals(str[j])){ // 기존 i의 문자들과 j의 문자열 비교
                    count++; // 같으면 count +1 
                }
            }
            if(count == 1){ // 개수가 1개인 경우에 i의 문자열 값을 anwser에 담기.
                answer += str[i];
            }
        }
        
        Systehttp://m.out.print("str : " + Arrays.toString(str));
        return answer;
    }
}

 

ex) s = hello
str[i] = e h l l o (s.split("") 
str[j] = e h l l o
str[0] = e
str[0~4] = e h l l o 
e의 개수 1개
str[1] = h
str[0~4] = e h l l o 
h의 개수 1개
str[2] = l
str[0~4] = e h l l o 
l의 개수 2개

 

# 아직..모르는게..많다...답을 보면..이해하지만..돌면 까먹고...더 열심히하자