728x90
반응형
▷ 문제
소문자로 된 한개의 문자열이 입력되면 중복된 문자를 제거하고 출력하는 프로그램을 작성하세요.
중복이 제거된 문자열의 각 문자는 원래 문자열의 순서를 유지합니다.
* 입력
첫 줄에 문자열이 입력됩니다. 문자열의 길이는 100을 넘지 않는다.
* 출력
첫 줄에 중복문자가 제거된 문자열을 출력합니다.
▷ 입력 예시
ksekkset
▷ 출력 예시
kset
▷ 풀이
1. contains 이용
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public List<String> solution(String str){
char[] cArr = str.toCharArray();
List<String> answer = new ArrayList<String>();
for (char x : cArr) {
String tmp = String.valueOf(x);
if(!answer.contains(tmp)){
answer.add(tmp);
}
}
return answer;
}
public static void main(String[] args) {
Main main = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.next();
for (String x : main.solution(str)){
System.out.print(x);
}
}
}
2. indexOf 이용
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public String solution(String str){
String answer = "";
for (int i = 0; i < str.length(); i++) {
if(str.indexOf(str.charAt(i)) == i){
answer += str.charAt(i);
}
}
return answer;
}
public static void main(String[] args) {
Main main = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.next();
System.out.println(main.solution(str));
}
}
▷ 핵심 포인트
1. indexOf는 특정 문자의 첫 번째 위치를 반환해주므로 for문의 인덱스와 동일할 때
중복 문자가 아니라는 점을 이용하여 문제를 풀 수 있습니다.
반응형
'Algorithm > String' 카테고리의 다른 글
[알고리즘]유효한 팰린드롬 - 입력 받은 문자열이 팰린드롬인지 판별하기 (0) | 2021.10.10 |
---|---|
[알고리즘]회문 문자열 - 입력 받은 문자열이 회문 문자인지 판단하기 (0) | 2021.10.10 |
[알고리즘]문자찾기 - 입력 받은 문자열에서 특정 문자가 몇 개 존재하는지 알아내기 (0) | 2021.10.09 |
[알고리즘]단어 뒤집기 - 입력받은 문자열 거꾸로 출력하기 (0) | 2021.10.09 |
[알고리즘]문장 속 단어 - 입력 받은 문장에서 가장 긴 단어 출력하기 (0) | 2021.10.09 |