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

ligun님의 프로필 이미지
ligun

작성한 질문수

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

6. 중복문자제거

HashMap으로 풀어봤는데 괜찮을까요

작성

·

312

2

강의를 보기 전에 먼저 HashMap으로 풀어봤는데 괜찮은 코드라고 봐도 될까요...?

 

import java.util.HashMap;
import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner kb = new Scanner(System.in);
        String in = kb.next();
        System.out.println(solution(in));
    }

    public static String solution(String in) {
        String answer = "";
        char[] chrArr = in.toCharArray();
        HashMap<Character, Integer> map = new HashMap<>();

        for(int i=0; i<in.length(); i++) {
            if (!map.containsKey(chrArr[i])) {
                answer += chrArr[i];
            }
            map.put(chrArr[i], 1);
        }

        return answer;
    }
}

답변 2

1

저는 set으로 해봤는데 map으로 하는 방법도 있었네요

import java.util.HashSet;
import java.util.Scanner;

public class Main {
    public String solutions(String str) {
        StringBuilder answer = new StringBuilder();
        char[] x = str.toCharArray();
        HashSet<Character> unique = new HashSet<>();
        for (char c : x) {
            if (unique.add(c)) {
                answer.append(c);
            }
        }
        return answer.toString();
    }

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

 

1

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

안녕하세요^^

네. 상관없습니다. 잘 하신 코드입니다.

ligun님의 프로필 이미지
ligun

작성한 질문수

질문하기