
그냥 평범한 문자열 문제다.
charAt, char와 int의 변환 등을 알면 쉽게 풀 수 있다.
문자열 제거는 StringBuilder를 이용했다. 문자열 변환이 빈번하게 일어난다면,
아무래도 String보단 StringBuilder가 좋기 때문.
class Solution {
public String solution(String my_string) {
String answer = "";
StringBuffer sb = new StringBuffer(my_string);
boolean[] count = new boolean [53]; // 0은 공백, 1~26은 소문자, 27~52는 대문자. 1회이상 등장시 true 반환.
boolean[] check = new boolean[my_string.length()]; // 문자열 체크, 중복등장한 index에 true 반환.
for (int i=0; i<my_string.length(); i++) {
char ch = my_string.charAt(i);
if (ch==' ') {
if (count[0]) {
check[i] = true;
} else {
count[0] = true;
}
} else if (ch>='a') {
if (count[ch-96]) {
check[i] = true;
} else {
count[ch-96] = true;
}
} else if (ch<='Z') {
if (count[ch-38]) {
check[i] = true;
} else {
count[ch-38] = true;
}
}
}
for (int i=check.length-1; i>=0; i--) {
if (check[i]) {
sb.deleteCharAt(i);
}
}
answer = sb.toString();
return answer;
}
}'프로그래머스 문제풀이 > Level 0' 카테고리의 다른 글
| 진료 순서 정하기 (자바, Java) (0) | 2022.11.27 |
|---|---|
| 합성수 찾기 (자바, Java) (0) | 2022.11.27 |
| 최댓값 만들기(2) (자바, Java) (0) | 2022.11.27 |
| 가장 큰 수 찾기 (자바, Java) (0) | 2022.11.27 |
| 약수 구하기 (자바, Java) (1) | 2022.11.26 |