강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

Jaeseon Hwang님의 프로필 이미지
Jaeseon Hwang

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

6. 중복문자제거

HashSet을 이용한 방식도 괜찮나요?

작성

·

252

4

Set을 이용해서 작성해봤는데 이 방법은 어떤지 궁금합니다.

 

import java.util.*;

public class Q6Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        char[] value = sc.nextLine().toCharArray();

        Set<String> cache = new HashSet<>();
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < value.length; i++) {
            String val = String.valueOf(value[i]);
            if (cache.contains(val)) {
                continue;
            }

            cache.add(val);
            sb.append(val);
        }

        System.out.println(sb.toString());
    }
}

퀴즈

대소문자를 구분하지 않고 문자열 내 특정 문자의 총 개수를 세려면, 어떤 방법이 가장 효율적일까요?

문자열을 반복하며 각 문자가 찾으려는 문자의 대문자 또는 소문자인지 모두 비교한다.

문자열 전체를 한 가지 케이스(예: 모두 대문자)로 통일한 후 해당 문자의 개수를 센다.

대문자와 소문자의 개수를 각각 세어 합산한다.

Set 자료구조를 사용하여 중복 없이 문자를 저장한 후 개수를 센다.

답변 1

4

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

잘하신 코드입니다.

Jaeseon Hwang님의 프로필 이미지
Jaeseon Hwang

작성한 질문수

질문하기