[문제 설명]
문자열 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 합니다.
[문제 풀이]
1. 문자열을 배열로 만든 후 사전 순으로 정렬한다.
2. 문자 등장 횟수를 세는 cnt 배열을 생성한다.
3. for문을 이용하여 문자별 등장하는 횟수를 저장한다.
4. cnt의 값이 1일 때 answer에 저장한다.
import java.util.*;
class Solution {
public String solution(String s) {
String answer = "";
String[] str = new String[s.length()];
int[] cnt = new int[str.length];
// 문자열을 배열로 만든 후 사전 순으로 정렬한다.
for(int i=0; i<str.length; i++) {
str = s.split("");
}
Arrays.sort(str);
for(int i=0; i<str.length; i++) {
for(int j=0; j<str.length; j++) {
if(str[i].equals(str[j])) {
cnt[i]++;
}
}
}
for(int i=0; i<str.length; i++) {
if(cnt[i] == 1) answer += str[i];
}
return answer;
}
}
향상된 for문과 알파벳 26개를 이용하여 간편하게 출력하는 방법도 있다.
'STUDY > 프로그래머스 코딩테스트' 카테고리의 다른 글
[코딩테스트 입문] 공 던지기 (0) | 2023.03.25 |
---|---|
[코딩테스트 입문] 숨어있는 숫자의 덧셈(2) (0) | 2023.01.30 |
[코딩테스트 입문] 진료순서 정하기 (0) | 2023.01.30 |
[코딩테스트 연습] k의 개수 (0) | 2023.01.29 |
[코딩테스트 입문] 2차원으로 만들기 (0) | 2023.01.29 |