728x90
반응형
SMALL

문제 설명

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


제한사항

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

입출력 예

s result

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

입출력 예 설명

입출력 예 #1

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

입출력 예 #2

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

입출력 예 #3

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

public class H120896 {
    public static String solution(String s) {
        String answer = "";
        int[] arr = new int[26];
        for (int i = 0; i < 26; i++) {
            arr[i] = 0;
        }
        for (int i = 0; i < s.length(); i++) {
            arr[s.charAt(i) - 97] += 1;
        }
        for (int i = 0; i < 26; i++) {
            if (arr[i] == 1) {
                answer += (char)(i + 97);
            }
        }
        return answer;
    }
    public static void main(String[] args){
        String s = "abcabcadc";
        System.out.println(solution(s));
    }
}

3중 for문… 현재로서는 생각나지 않아 일단 이렇게 풀었는데 다음엔 다른방식을 써보기!!

문자를 정수로 변경해준 후 아스키 코드로 나중에 변경해줄 걸 생각하고 먼저 알파벳이 26개 있기 때문에 먼저 97을 빼서 1부터 인식할 수 있게 한 후 다시 더해주는 식으로 문제를 해결!

728x90
반응형
LIST

'알고리즘 > 프로그래머스 JAVA LV.0' 카테고리의 다른 글

문자열 계산하기  (0) 2023.02.22
가장 큰 수 찾기  (0) 2023.02.21
인덱스 바꾸기  (0) 2023.02.19
세균 증식  (0) 2023.02.18
영어가 싫어요  (0) 2023.02.17

+ Recent posts