목차
문제 설명
문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ my_string ≤ 110
- my_string은 대문자, 소문자, 공백으로 구성되어 있습니다.
- 대문자와 소문자를 구분합니다.
- 공백(" ")도 하나의 문자로 구분합니다.
- 중복된 문자 중 가장 앞에 있는 문자를 남깁니다.
import java.util.LinkedHashSet;
class Solution {
public String solution(String my_string) {
// LinkedHashSet을 사용하여 입력 순서를 유지하면서 중복 제거
LinkedHashSet<Character> set = new LinkedHashSet<>();
StringBuilder answer = new StringBuilder();
for (char ch : my_string.toCharArray()) {
// 문자 중복 검사 및 처리
if (!set.contains(ch)) {
set.add(ch); // 중복 방지를 위해 Set에 추가
answer.append(ch); // 결과 문자열에 추가
}
}
return answer.toString();
}
}
코드 설명
- LinkedHashSet: 삽입된 순서를 유지하며 중복된 값을 허용하지 않는다.
- StringBuilder: 문자열을 효율적으로 조합하기 위해 사용한다.
- for-each 루프: 문자열을 문자 배열로 변환하여 순회.
- 조건문: set.contains(ch)를 통해 중복 여부를 확인하고, 중복이 아니라면 set.add(ch) 및 answer.append(ch) 수행.
'JAVA > 프로그래머스 코딩테스트 입문' 카테고리의 다른 글
[프로그래머스, LV.0] 팩토리얼 (0) | 2024.12.10 |
---|---|
[프로그래머스 LV.0] 진료 순서 정하기 (0) | 2024.12.10 |
[프로그래머스 LV.0] 2차원으로 만들기 (1) | 2024.12.02 |
[프로그래머스 LV.0] 외계행성의 나이 (0) | 2024.12.02 |
[프로그래머스 LV.0] 합성수 찾기 (0) | 2024.12.02 |