
내가 생각했을때 문제에서 원하는부분
문자열 my_string이 매개변수로 주어집니다.
my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요.
내가 이 문제를 보고 생각해본 부분
solution 메서드는 전달받은 문자열에서 중복된 문자를 제거하는 핵심 로직을 담당한다.
answer 변수는 중복이 제거된 결과 문자열을 담기 위해 빈 상태로 초기화된다.
for 반복문은 입력된 문자열의 첫 번째 글자부터 마지막 글자까지 차례대로 탐색한다.
charAt(i)는 반복 인덱스에 해당하는 특정 위치의 문자를 하나씩 추출한다.
indexOf는 현재 살펴보는 문자가 결과 문자열인 answer 안에 이미 포함되어 있는지 확인한다.
결과 문자열에 해당 문자가 존재하지 않을 경우 -1이라는 값을 반환한다.
조건문에서는 이 값이 -1일 때만 answer 뒤에 문자를 이어 붙여서 중복을 걸러낸다.
모든 글자에 대한 확인 작업이 끝나면 중복이 제거된 깨끗한 answer를 반환한다.
main 메서드는 프로그램의 실행 흐름을 제어하는 진입점 역할을 한다.
my_string과 my_string1 변수에 각각 테스트할 문자열을 할당한다.
T.solution() 메서드를 호출하여 각각의 문자열을 전달하고 처리 결과를 도출한다.
최종적으로 System.out.println을 통해 콘솔 창에 결과가 출력되도록 구현되어 있다.
코드로 구현
class Solution {
public String solution(String my_string) {
String answer = "";
for (int i = 0; i < my_string.length(); i++) {
char c = my_string.charAt(i);
if (answer.indexOf(c) == -1) {
answer += c;
}
}
return answer;
}
}
프로그래머스 코드
package programmers.programmers2;
// 프로그래머스 중복된 문자 제거
public class Main143 {
public static String solution(String my_string) {
String answer = "";
for (int i = 0; i < my_string.length(); i++) {
char c = my_string.charAt(i);
if (answer.indexOf(c) == -1) {
answer += c;
}
}
return answer;
}
public static void main(String[] args) {
Main143 T = new Main143();
String my_string = "people";
String my_string1 = "We arthwold";
System.out.println(T.solution(my_string));
System.out.println(T.solution(my_string1));
}
}
위에 있는 코드를 변경한 코드
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.