프로그래머스 코딩테스트 입문단계 '중복된 문자 제거' 문제입니다.
https://school.programmers.co.kr/learn/courses/30/lessons/120888
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
❓문제 설명
문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요.
※ 아래 입출력 예시를 참고하세요!
⚠️ 제한사항 및 입출력 예시
- 1 ≤ my_string ≤ 110
- my_string은 대문자, 소문자, 공백으로 구성되어 있습니다.
- 대문자와 소문자를 구분합니다.
- 공백(" ")도 하나의 문자로 구분합니다.
- 중복된 문자 중 가장 앞에 있는 문자를 남깁니다.
입출력 예시 ▼
입력
"people"
출력
"peol"
✏️ 직접 구현한 코드
import java.util.*;
class Solution {
public String solution(String my_string) {
String answer = "";
char[] arr = my_string.toCharArray();
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;
}
}
🗣️ 코드 설명
- 최종적으로 return할 answer을 생성합니다.
- arr배열에 매개변수 my_string을 char로 바꾸어 저장하기위해, toCharArray() 메서드를 사용합니다.
- 0부터 my_string의 길이만큼 증가하는 i를 증가값으로 가지는 for문을 만듭니다.
- for문 안에 있는 if문은 my_string i 자리의 값을 charAt() 메서드로 받은 뒤, 그 값이 몇 인덱스인지 indexOf() 메서드로 알아냅니다. 그렇게 알아낸 인덱스의 값이 i 와 같은지를 비교합니다. 중복된 문자를 빼고 answer에 저장하기 위함입니다.
- 인덱스의 값이 i 와 같으면, my_string i 자리의 값을 charAt() 메서드로 받아 answer에 더합니다.
⭐ 기억하고 넘어갈
charAt() : 문자열의 지정한 부분을 골라 char형으로 변환
< 사용 예 >
String str = "나는코딩천재";
char ch = str.charAt(2); // ch == '코'
indexOf() : 지정한 특정 문자의 인덱스를 반환
< 사용 예 >
String str = "나는코딩천재";
int idx = str.indexOf("천"); // idx == 4
'코딩테스트 회고록 > 코테_Java' 카테고리의 다른 글
[JAVA] 프로그래머스 - 모음 제거 (0) | 2023.03.25 |
---|---|
[JAVA] 메서드 - replace(), replaceAll() (1) | 2023.03.25 |
[JAVA] 프로그래머스 - 7의 개수 (0) | 2023.03.20 |
[JAVA] 프로그래머스 - 합성수 찾기 (0) | 2023.03.17 |
[JAVA] 프로그래머스 - 가까운 수 (0) | 2023.03.11 |