알고리즘/Java 코딩 테스트 준비
[Java] 중복문자 제거하기
Dev dreamer
2023. 2. 11. 12:53
입력 aaabccddee
출력 abcde
아 진짜 쉽게 풀만한 문제인데 혼자 복잡하게 풀은듯 ..ㅠㅠ
일단 String 데이터 값을 Scanner 로 받고
solution 메소드에서 이중포문을 구현해서 풀었다.
cnt 라는 int 값을 i 반복문에서 받아 입력받은 문자열의 각 단어마다 int 를 새로 받는다
그리고 j 반복문 안에 들어가면
처음 입력받은 스트링의 0번째 인덱스 값을 넣어둔 String answer와 입력받은 문자열의 i 번째와 비교한다
만약 같은 값이 있으면 cnt 는 숫자가 증가하게 된다
이때! 숫자가 한번도 증가하지 않은 문자만
answer에 담아준다.
answer에 담을 때 char 형태의 데이터라서 String.valueOf 를 사용해서 받아주었다.
import java.util.Scanner;
public class Main {
public String solution(String str) {
String answer = String.valueOf(str.charAt(0));
for (int i = 0; i < str.length(); i++) {
int cnt = 0;
for (int j = 0; j < answer.length(); j++) {
if (str.charAt(i) == answer.charAt(j)) {
cnt++;
}
}
if (cnt == 0) {
answer = answer + String.valueOf(str.charAt(i));
}
}
return answer;
}
public static void main(String args[]) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.next();
System.out.println(T.solution(str));
}
}
강사님 코드
indexOf 의 기능을 사용! (str.indexOf(str.charAt(i)) 해당 단어의 처음등장 위치.
위와 같이 콘솔에 값을 찍어보면
그냥 index 수와 처음 등장 위치가 같은 문자들만 추가해주면 된다!

코테 관련해서 많이 부담스러웠는데 강의를 통해 푸는 방법들을 배우니 이 시간이 즐겁습니다.
진짜 기능하나하나 다양한 방법으로 잘 가르쳐주십니다.
출처 : 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비 대시보드 - 인프런 | 강의 (inflearn.com)