https://school.programmers.co.kr/learn/courses/30/lessons/42576
1. 배열 정렬로 풀이
참가자,완주자 명단을 정렬
참가자명단을 반복문을 돌면서 같은 인덱스에 완주자 명단을 보고 이름이 같은지 체크 아니면 완주 못한사람
public String solution(String[] participant, String[] completion) {
String answer = "";
if(participant.length == 1)
{
return participant[0];
}
Arrays.sort(participant);
Arrays.sort(completion);
// System.out.println(Arrays.toString(participant));
// System.out.println(Arrays.toString(completion));
for(int i=0; i<completion.length;i++)
{
if(!participant[i].equals(completion[i]))
{
return participant[i];
}
}
return participant[participant.length-1];
}
2. Map이용
Map 2개만들어서 각각 참가자 ,완주자 정리
참가자 Map을 돌면서 해당 키가 존재하는지, 존재하면 value의 값이 같은지 체크 아니면 완주 못한사람
entrySet을 사용하려면 import java.util.Map.* 필요
import java.util.*;
import java.util.Map.*;
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
Map<String,Integer> part = new HashMap<>();
Map<String,Integer> comp = new HashMap<>();
for(String name : participant)
{
part.put(name,part.getOrDefault(name,0)+1);
}
for(String name : completion)
{
comp.put(name,comp.getOrDefault(name,0)+1);
}
// System.out.println(part);
// System.out.println(comp);
for(Entry<String,Integer> entry : part.entrySet())
//entrySet을 사용하려면 import java.util.Map.*; 필수
{
String key = entry.getKey();
int value = entry.getValue();
if(!comp.containsKey(key))
{
return key;
}
if(comp.get(key) != value)
{
return key;
}
}
return "";
}
}
'자바 > 알고리즘 문제 풀이' 카테고리의 다른 글
★프로그래머스3/베스트앨범/Map,Comparator,class (0) | 2023.03.28 |
---|---|
프로그래머스2/위장 / Hash (0) | 2023.03.28 |
백준/11404 플로이드 / (최단경로찾기) 플로이드 와샬,다익스트라 (1) | 2023.01.10 |
★★★ 백준/13549 숨바꼭질3 / bfs, 다익스트라 알고리즘 (0) | 2023.01.03 |
백준/1504 특정한 최단 경로/ 다익스트라 알고리즘 (0) | 2023.01.03 |
댓글