[문제 설명]
문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요.
[제한사항]
- 1 ≤ my_string ≤ 110
- my_string은 대문자, 소문자, 공백으로 구성되어 있습니다.
- 대문자와 소문자를 구분합니다.
- 공백(" ")도 하나의 문자로 구분합니다.
- 중복된 문자 중 가장 앞에 있는 문자를 남깁니다.
[입출력 예]
my_string | result |
"people" | "peol" |
"We are the world" | "We arthwold" |
[입출력 예 설명]
입출력 예 #1
- "people"에서 중복된 문자 "p"와 "e"을 제거한 "peol"을 return합니다.
입출력 예 #2
- "We are the world"에서 중복된 문자 "e", " ", "r" 들을 제거한 "We arthwold"을 return합니다.
[풀이]
class Solution {
public String solution(String my_string) {
String answer = "";
for(int i=0; i<my_string.length(); i++) {
if(my_string.indexOf(my_string.charAt(i)) == i) {
answer += my_string.charAt(i);
}
}
return answer;
}
}
1. my_string의 길이만큼 for문을 이용하여 반목문을 실행한다.
2. if문을 통해 중복되지 않은 문자를 확인한다.
if ( my_string.indexOf(my_string.charAt(i)) == i )
(2-2) (2-1) (2-3)
2-1) my_string에서 검색할 문자를 찾는다.
2-2) 2-1에서 찾은 문자가 몇 번째 인덱스에 있는지 확인한다.
2-3) indexOf는 앞에서부터 검색을 진행한다. 검색한 문자가 현재 인덱스와 동일한지 확인한다.
이 때, 중복 여부를 확인할 수 있다.
만약 문자열이 people이라면 두 번째 p를 검색하면 i는 3이지만 indexOf에서는 0을 출력하기 때문에 중복되는 것을 확인할 수 있다.
위와 같은 방식으로 인덱스를 이용해서 문자를 검색하고, 중복되지 않은 문자일 때 answer에 값을 추가한다.
'STUDY > 프로그래머스 코딩테스트' 카테고리의 다른 글
[코딩테스트 입문] 2차원으로 만들기 (0) | 2023.01.29 |
---|---|
[코딩테스트 입문] 팩토리얼 (0) | 2023.01.29 |
[코딩 테스트 입문] 숨어있는 숫자의 덧셈 (1) (0) | 2022.10.28 |
[코딩테스트 입문] 배열 뒤집기 (0) | 2022.10.20 |
[코딩테스트 입문] 배열 원소의 길이 (0) | 2022.10.20 |