고구마와 감자
Amor DevFati(아모르 개발파티)
고구마와 감자
전체 방문자
오늘
어제
  • 분류 전체보기
    • 스프링
    • 알고리즘
      • 백준
      • 프로그래머스
      • 인프런_자바코테강의
      • 리트코드
      • 해커랭크
      • 코드업
      • 이것저것
    • 자바
    • GIT
    • 파이썬
    • 개발이론
    • JPA
    • 김영한 강의
      • 모든 개발자를 위한 HTTP 웹 기본 지식
      • 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
      • 스프링 핵심 원리 - 기본편
    • 일기 및 아무말 적기

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Mini Fantasy War
  • 백준
  • 5361
  • 남욱이의 닭장
  • 고려대학교에는 공식 와인이 있다
  • 10409
  • 2857
  • 2921
  • 홀수일까 짝수일까
  • 전투 드로이드 가격
  • 14656
  • 1598
  • 더하기 3
  • 꼬리를 무는 숫자 나열
  • 조교는 새디스트야!!
  • 2의 제곱인가
  • 11023
  • 11966
  • 5988
  • 16673

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
고구마와 감자

Amor DevFati(아모르 개발파티)

인프런 6. 중복 문자 제거 (Java)
알고리즘/인프런_자바코테강의

인프런 6. 중복 문자 제거 (Java)

2022. 3. 10. 22:32

 

내 풀이 

ArrayList의 contains로 list에 안 담겨 있는 문자를 추가해주고 출력

public class Main {
    public String solution(String str) {
        String answer = "";
        ArrayList<Character> list = new ArrayList<>();
        char[] c = str.toCharArray();
        for (int i = 0; i < str.length(); i++) {
            if (!list.contains(c[i])) {
                list.add(c[i]);
            }
        }
        for (int i = 0; i < list.size(); i++) {
            answer += list.get(i);
        }
        return answer;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.next();
        Main T = new Main();
        System.out.println(T.solution(s));
    }
}

 

슨상님 풀이 

이런 풀이방법을 처음에 출력문으로 보여주고 설명을 해줘서 이해하기 정말 좋았다. 

i 와 indexOf가 같다면 중복문자의 첫 번째이므로 이를 넣어준다. 만약 문자가 2번째 나오면 indexOf는 앞에서부터 찾기 때문에 앞에서 나온 같은 문자의 인덱스가 나오게 된다. 

public class Main2 {
    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)));

            //  indexOf를 활용한 풀이 indexOf는 앞에서부터 찾는다.
            // 문자의 인덱스(위치)와 indexOf로 나온 위치가 같다면 처음 나온 문자이다.위 프린트문을 출력해보면 알 수 있다.
            if (str.indexOf(str.charAt(i)) == i) {
                answer += str.charAt(i);
            }
        }
        return answer;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.next();
        Main2 T = new Main2();
        System.out.println(T.solution(s));
    }
}

'알고리즘 > 인프런_자바코테강의' 카테고리의 다른 글

8. 유효한 팰린드롬  (0) 2022.03.25
인프런 7. 회문 문자열(JAVA)  (0) 2022.03.25
인프런 5. 특정 문자 뒤집기 (Java)  (0) 2022.03.10
인프런 4. 단어뒤집기 (Java)  (0) 2022.03.10
인프런 3. 문장 속 단어 (Java)  (0) 2022.03.07
    '알고리즘/인프런_자바코테강의' 카테고리의 다른 글
    • 8. 유효한 팰린드롬
    • 인프런 7. 회문 문자열(JAVA)
    • 인프런 5. 특정 문자 뒤집기 (Java)
    • 인프런 4. 단어뒤집기 (Java)
    고구마와 감자
    고구마와 감자
    Amor DevFati는 김연자-Amor Fati에 Development(개발)의 Dev 를 첨가하여 만든 이름

    티스토리툴바