오늘보다 더 나은 내일의 나에게_

자바 알고리즘 문제 풀이 String Q06_중복문자제거 본문

ALGORITHM/inflearn_javaAlgorithm

자바 알고리즘 문제 풀이 String Q06_중복문자제거

chan_96 2022. 1. 26. 14:05
728x90
설명

소문자로 된 한개의 문자열이 입력되면 중복된 문자를 제거하고 출력하는 프로그램을 작성하세요.

중복이 제거된 문자열의 각 문자는 원래 문자열의 순서를 유지합니다.


입력

첫 줄에 문자열이 입력됩니다. 문자열의 길이는 100을 넘지 않는다.


출력

첫 줄에 중복문자가 제거된 문자열을 출력합니다.

 


예시 입력1


예시 출력

ksekkset kset

 

코드

내가 입력한 코드

package String;

import java.util.Scanner;

public class Q06 {
	public String solution(String str) {
		String answer="";
		char[] x = str.toCharArray();
		for (int i = 0; i < str.length(); i++) {
			if(answer.indexOf(x[i])==-1) {
				answer += x[i];
			}
		}
		return answer;
	}
	public static void main(String[] args) {
		Q06 T = new Q06();
		Scanner kb = new Scanner(System.in);
		String str = kb.next();
		
		System.out.println(T.solution(str));
	}
}

 




해설 코드

import java.util.*;
class Main {	
	public String solution(String str){
		String answer="";
		for(int i=0; i<str.length(); i++){
			//System.out.println(str.charAt(i)+" "+i+" "+str.indexOf(str.charAt(i)));
			if(str.indexOf(str.charAt(i))==i) answer+=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.print(T.solution(str));
	}
}

 

 

풀이 및 정리 

indexOf()에서 매개변수의 값을 찾지 못하면 -1을 반환한다.

해설에서는 str로 받은 매개변수에 바로 charAt()메소드를 사용해 접근을 했다. 만약 중복된 문자가 있다면 조건문에서 비교하는 i값과 다른것이다!

charAt() => 인덱스 위치에 해당하는 문자 추출! 
728x90
Comments