미해결
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
강사님과 다른 방식으로 풀었는데 확인 부탁드립니다.
public class Main7 {
public static String solution(String str) {
String answer="";
//문자를 카운트한다.
//문자가 2개 이상일 경우 그 문자를 지운다.
ArrayList<Character> list = new ArrayList<>();
for(char a : str.toCharArray()) {
if(!list.contains(a)) {
list.add(a);
}
}
for(char a : list) {
answer += a;
}
return answer;
}
public static void main(String[] args){
Scanner in=new Scanner(System.in);
String str = in.nextLine();
System.out.print(solution(str));
}
}
문제는 통과했지만 시간복잡도?에 대해 궁금한 것이 있어서 질문드립니다.
제가 한 방법은
1.ArrayList<Character> list를 생성
2.주어진 문장 str을 toCharArray()로 변환.
3.for each문을 실행해 주어진 문장을 한글자씩 list에 담지만 list.contains()를 사용하여 list에 문자가 있다면 제외.
4.마지막으로 String 변수에 저장해 출력.
이런 방식으로 풀었는데 저는 for문을 2번 사용했고 강사님은 for문을 1번 수행했습니다.
만약에 시간제한이 있는 문제라면 제 방식은 문제가 있는걸까요? 시간복잡도에 대해 잘 알지못해서 질문드립니다.