본문 바로가기

ProgramSoliving

프로그래머스 : 완주하지 못한 선수

반응형

N^2 으로 일일이 찾아가면서 제거할려면 많은 시간이 소요된다.

HashMap으로 탐색시간을 줄여야한다.

package hash;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class h1 {
	public String solution(String[] participant, String[] completion) {
		StringBuilder answer = new StringBuilder();

		Map<String, Integer> hash = new HashMap<String, Integer>();

		for (String str : participant) {
			if (hash.containsKey(str)) {
				int tmp = hash.get(str);
				hash.put(str, tmp + 1);
			} else {
				hash.put(str, 1);
			}
		}

		for (String str : completion) {
			int tmp = hash.get(str);
			if (tmp == 1) {
				hash.remove(str);
			} else {
				hash.put(str, tmp - 1);
			}
		}

		Set<String> keys = hash.keySet();

		answer.append(keys.iterator().next());

		return answer.toString();
	}
}
반응형