본문 바로가기
algorithm/Programmers

한 번만 등장한 문자

by 이쟝 2023. 3. 7.

문자열 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 합니다.

class Solution {
    public String solution(String s) {
        // 알파벳을 넣은 char 배열
        char[] alphabet = new char[26]; 
        // 문자열 s를 char 배열로 바꿔서 -97 => a이면 0, b이면 1
        for(char c : s.toCharArray()) {
            alphabet[c-97]++;
        }
        
        StringBuilder sb = new StringBuilder();
        // 예시, b일때 3, 3+97 = 100
        for(int i=0;i<alphabet.length;i++) {
            if(alphabet[i] == 1) sb.append((char)(i + 97));
        }
       
        return sb.toString();
    }
}
  • c-97 or c - 'a' 가능! 만약에 a이면 alphabet[0] => a인것! (a-'a' or a-97)
  • (char)(i + 97)  or (char)(i + 'a') 가능! / 만약에 d 이면 i는 3 + 97 = 100, 100을 char로 바꾸면 d!
  • 배열[0] ++ 신박하다..!

'algorithm > Programmers' 카테고리의 다른 글

[JAVA] 문자열 안에 문자열  (0) 2023.03.15
[JAVA] 문자열 계산하기  (0) 2023.03.09
[JAVA] 인덱스 바꾸기  (0) 2023.03.03
[JAVA] 컨트롤 제트  (0) 2023.03.02
[JAVA] 대문자와 소문자(대문자, 소문자 변환)  (0) 2023.02.10