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

ay.zip·2021년 11월 16일
0

문제풀이

목록 보기
1/18

완주하지 못한 선수

다른 분들 풀이를 참고하였습니다.

import java.util.HashMap;

class Solution {
    public String solution(String[] participant, String[] completion) {
        String answer="";
        
        HashMap<String,Integer> map = new HashMap<>();
        // 참가자 배열안에 있는 사람들을
        for(String player:participant){
        //해시맵에 넣는다. map(선수이름, 선수이름 값이 존재하면 선수이름 값을 넣어주고 없다면 0) + 1
            map.put(player,map.getOrDefault(player,0)+1);
        }
        //완주자들 대상으로 해시맵에 넣고, 키 값에서 -1을 빼준다.
        /*
        예를 들어 
        leo=1 eden=1 kiki=1 
        완주했으면 -1해줘야하고, leo가 안들어온 상황이면
        leo=1 eden=0 kiki=0
        이니까 
        */
        for(String player:completion){
            map.put(player,map.get(player)-1);
        }
        for(String player:map.keySet()){
            if(map.get(player)!=0){
                answer=player;
                break;
            }
        }
        return answer;
    }
}

import java.util.HashMap;
HashMap<String,Integer> map = new HashMap<>();

getOrDefault(a,0)+1 -> a값이 존재하면 그 값을 넣어주고, 없다면 0을 넣어라
=> 키 값이 몇번이나 사용되었는지 찾고 싶을 때 사용.

String[] ex={"A","B","C","A"};
HashMap<String,Integer> map = new HashMap<>();
for(String str : ex) 
	map.put(str,map.getOrDefault(str,0)+1);

HashMap Method

  • map.remove(1) => key값이 1인 것 제거
  • map.clear() => 모든 값 제거
  • map.get(1) => key값이 1인 value return
  • entry.getKey(), entry.getValue() => key와 value가 모두 필요할 경우 사용 : map.entrySet()
  • map.keySet() => 저장된 key값 확인

0개의 댓글