티스토리 뷰
반응형
문제
소문자로 된 한개의 문자열이 입력되면 중복된 문자를 제거하고 출력하는 프로그램을 작성하세요.
중복이 제거된 문자열의 각 문자는 원래 문자열의 순서를 유지합니다.
입력
첫 줄에 문자열이 입력됩니다. 문자열의 길이는 100을 넘지 않는다.
출력
첫 줄에 중복문자가 제거된 문자열을 출력합니다.
예시 입력
ksekkset
예시 출력
kset
문제 풀이
[첫번째 풀이]
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
String input = in.next();
String result = "";
for (char c : input.toCharArray()) {
if (!result.contains(Character.toString(c))) {
result += c;
}
}
System.out.println(result);
}
}
(Time 158ms / Memory 27MB)
import java.util.Scanner;
public class Main {
public String Solution(String str) {
String result = "";
for (char c : str.toCharArray()) {
if (!result.contains(Character.toString(c))) {
result += c;
}
}
return result;
}
public static void main(String[] args){
Scanner in = new Scanner(System.in);
String input = in.next();
Main main = new Main();
System.out.println(main.Solution(input));
}
}
(Time 149ms / Memory 27MB)
[두번째 풀이]
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
String input = in.next();
String result = "";
for (char c : input.toCharArray()) {
if (result.indexOf(Character.toString(c)) == -1) {
result += c;
}
}
System.out.println(result);
}
}
(Time 162ms / Memory 27MB)
import java.util.Scanner;
public class Main {
public String Solution(String str) {
String result = "";
for (char c : str.toCharArray()) {
if (result.indexOf(Character.toString(c)) == -1) {
result += c;
}
}
return result;
}
public static void main(String[] args){
Scanner in = new Scanner(System.in);
String input = in.next();
Main main = new Main();
System.out.println(main.Solution(input));
}
}
(Time 162ms / Memory 27MB)
- 첫번째 풀이에선 contains를 사용, 두번째 풀이에선 indexOf를 사용해서 문제를 풀었다.
- 보통은 contains 보다 indexOf를 사용하길래 시간단축에 도움되나 싶어 둘다 풀어봤는데 조금의 차이로 오히려 contains 사용하여 푼 방식의 수행시간이 더 짧았다. 그럼 실무에서도 indexOf를 더 많이 사용하는 이유는 무엇일까?
반응형
'Java > Coding Test' 카테고리의 다른 글
[코딩테스트] 유효한 팰린드롬 (0) | 2022.02.27 |
---|---|
[코딩테스트] 회문 문자열 (0) | 2022.02.27 |
[코딩테스트] 특정 문자 뒤집기 (0) | 2022.02.22 |
[코딩테스트] 단어 뒤집기 (0) | 2022.02.22 |
[코딩테스트] 문장 속 단어 (0) | 2022.02.22 |