코테/프로그래머스

[프로그래머스/Lv. 1] 완주하지 못한 선수

imname1am 2023. 2. 21. 23:41
반응형

내 코드 (틀림)

import java.util.*;

class Solution {
    public String solution(String[] participant, String[] completion) {
        String answer = "";
        
        HashMap<String, Integer> map = new HashMap<>();
        
        for(int i=0; i < completion.length; i++) {
            int cnt = 1;
            
            if(map.containsKey(completion[i])) {
                cnt = map.get(completion[i]) + 1;
            }
            
            map.put(completion[i], cnt);
        }
        
        for(int i = 0; i < participant.length; i++) {
            if(!map.containsKey(participant[i]) || map.get(participant[i]) != 1) {
                answer += participant[i];
            }
        }
        
        return answer;
    }
}
 

[JAVA] HashMap에 <키워드,개수>의 형태로 넣기

이번에 설명할 메소드는 '키워드의 개수를 새서 hashmap에 담는 기능'을 수행합니다. 프로세스는 다음과 같습니다. ① 배열 arr에 담긴 키워드들을 하나씩 꺼내서 hashmap에 키로 있는지 확인을 한 뒤

data-traveler.tistory.com

위 글 참고해서 이름 갯수를 count해서 얘가 1이 아니면 answer 값이 되게 해보았다.

근데 마지막 테스트 케이스를 통과하지 못 했다....

결국 고민하다가  다른 분들 정답을 확인했다...ㅠ


 

[알고리즘 / JAVA] 프로그래머스 - 완주하지 못한 선수 [해시]

문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완

junghn.tistory.com

import java.util.*;

class Solution {
    public String solution(String[] participant, String[] completion) {
        String answer = "";
        
        HashMap<String, Integer> map = new HashMap<>();
        
        for(String player : participant) {
            map.put(player, map.getOrDefault(player, 0) + 1);
        }
        
        for(String player : completion) {
            map.put(player, map.get(player) - 1);
        }
        
        for(String key : map.keySet()) {
            if(map.get(key) != 0) {
                answer = key;
            }
        }
        
        return answer;
    }
}

hashmap.getOrDefault(Object key, V DefaultValue): 찾는 key가 존재하면 해당 key에 매핑되어 있는 값 반환 / 없으면 디폴트 값 반환

hashmap.put(Object key, Object value)    : HashMap에 키와 값 저장

hashmap.get(Object key)                                       : 지정된 Key 값 반환

hashmap.keySet()                                                        : HashMap에 저장된 모든 키가 저장된 set 반환

우와 효율성 테스트는 처음 본다...!🙊


(참고)

 

[Java] HashMap 함수 제대로 알고 사용하기

http://forum.falinux.com/zbxe/?document_srl=570168&mid=lecture_tip&page=1http://arabiannight.tistory.com/entry/%EC%9E%90%EB%B0%94Java-%EC%9E%90%EB%B0%94-HashMap-%EC%9D%B4%EB%9E%80 1. HashMap이란?: HashMap은 Map을 구현한다. Key와 value를 묶어

vaert.tistory.com

 

[JAVA] Map - getOrDefault 이란? 사용법 및 예제

getOrDefault - 찾는 키가 존재한다면 찾는 키의 값을 반환하고 없다면 기본 값을 반환하는 메서드 사용 방법 getOrDefault(Object key, V DefaultValue) 매개 변수 : 이 메서드는 두 개의 매개 변수를 허용합니

junghn.tistory.com

 

반응형