문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다
생각한 풀이
1. 중복이 없는 문자를 뽑아 내 추가하기 위해 StringBuilder 만든다
2. 이중 for문을 사용해서 첫 for문에서 s의 해당 문자가 중복인지 확인하기 위해 변수에 저장
3. 내부 for문에서 해당 문자가 다른 문자들과 중복인지 확인
4. 중복이 없다면 append()를 통해 추가
import java.util.Arrays;
class Solution {
public String solution(String s) {
StringBuilder sb = new StringBuilder();
for (int i=0;i<s.length();i++) {
char n=s.charAt(i);
boolean mul= true;
for (int j=0;j<s.length();j++) {
if (i!=j&&n==s.charAt(j)) {
mul = false;
}
}
if (mul) {
sb.append(n);
}
}
char arr[] = sb.toString().toCharArray();
Arrays.sort(arr);
return new String(arr);
}
}
🐴 풀이
1. 첫 for문에서 s.charAt(i)로 현재 문자 저장
2. 중복인지 구분하는 boolean true로 생성
3. 두번째 for문에서 인덱스 값이 다르고 문자가 같다면 mul을 false로 변경
4. for문이 끝났을때 mul=true인 값만 sb.append()
5. 문자 정렬을 위해 sort를 사용하려고 배열로 변경. 변경할때 sb를 문자열로 변경하고 char 타입의 배열로 생성
6. 정렬 후 String으로 출력
사전 순으로 정렬하는걸 놓쳐서 StringBuilder로 시작했는데 바로 배열로 넣는게 편할꺼 같다