Skip to content

21.02.14 - [PG] 완주하지 못한 선수 #15

@suhyunsim

Description

@suhyunsim

문제

핵심 아이디어

  • 두 참가자, 완료자 배열을 정렬하고 인덱스 다른 선수 리턴

어려운 점, 실수

풀이

배열로 풀이

package main.java.com.poogle.PG.Q42576;

import java.util.Arrays;

public class Solution {
    public String solution(String[] participant, String[] completion) {
        Arrays.sort(participant);
        Arrays.sort(completion);
        int playerIndex = 0;

        for (playerIndex = 0; playerIndex < completion.length; playerIndex++) {

            if (!participant[playerIndex].equals(completion[playerIndex])) {
                return participant[playerIndex];
            }
        }
        return participant[playerIndex];
    }
}

Map Key로 풀이

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

class Solution {
    
    public String solution(String[] participant, String[] completion) {
        String answer = "";
        Map<String, Integer> map = new HashMap<>();
        for (String person : participant) {
            map.put(person, map.getOrDefault(person, 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;
                break;
            }
        }
        
        return answer;        
    }
}

EntrySet으로 풀이

import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;

class Solution {
    
    public String solution(String[] participant, String[] completion) {
        String answer = "";
        Map<String, Integer> map = new HashMap<>();
        for (String person : participant) {
            map.put(person, map.getOrDefault(person, 0) + 1);
        }
        
        for (String player : completion) {
            map.put(player, map.get(player) - 1);
        }
        
        Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry<String, Integer> entry = iterator.next();
            if (entry.getValue() != 0) {
                answer = entry.getKey();
                break;
            }
        }
        return answer;        
    }
}

Metadata

Metadata

Assignees

Labels

lv.1프로그래머스 - level 1성공맞은 문제해시해시

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions