Recent Posts
Link
250x250
오늘보다 더 나은 내일의 나에게_
자바 알고리즘 문제 풀이 String Q06_중복문자제거 본문
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
'ALGORITHM > inflearn_javaAlgorithm' 카테고리의 다른 글
자바 알고리즘 문제 풀이 String Q08_유효한 팰린드롬 (0) | 2022.01.31 |
---|---|
자바 알고리즘 문제 풀이 String Q07_회문 문자열 (0) | 2022.01.28 |
자바 알고리즘 문제 풀이 String Q05_특정 문자 뒤집기 (0) | 2022.01.25 |
자바 알고리즘 문제 풀이 String Q04_단어 뒤집기 (0) | 2022.01.23 |
자바 알고리즘 문제 풀이 String Q03_문장 속 단어 (0) | 2022.01.23 |
Comments