20. 완주하지 못한 선수
// 해쉬맵을 사용하기 위한 임포트 추가
import java.util.HashMap;
class Solution {
public String solution(String[] participant, String[] completion)
{
String answer = "";
HashMap<String,Integer> map = new HashMap<>();
// 해쉬테이블에 참가자들의 이름을 키값으로 넣어주고 디폴트값을 0에 1씩 추가
for ( String person : participant)
{
map.put(person, map.getOrDefault(person, 0) +1);
}
// 해쉬 테이블에 완주자 이름의 키의 밸류값을 1씩 빼줌 ( 동명이인 체크 )
for ( String person : completion)
{
map.put(person, map.get(person) -1);
}
// 해쉬테이블의 키 중에서 밸류값이 1인 키값을 찾아 answer로 반환
for ( String key : map.keySet())
{
if ( map.get(key) == 1)
{
answer = key;
}
}
return answer;
}
}
해쉬 테이블의 개념과 for문과 if문으로만 해결하려고 하면 모든 배열을 다 찾아서 배열의 길이가 커질수록 처리 속도가 늘어나지만 해쉬테이블을 사용하면 배열의 길이와 상관없이 빠른 속도로 처리할 수 있다는 것을 배울 수 있었다.
// 해쉬 테이블을 배우기 전에 for문과 if문으로만 작성한 풀이 //
String answer = "";
for ( int i =0; i<participant.length; i++ )
{
if (!answer.equals(""))
{
break;
}
else
{
for( int j =0; j<completion.length; j++)
{
if (participant[i].equals(completion[j]) )
{
answer = "";
completion[j] = "";
break;
}
answer = participant[i];
}
}
}
return answer;
Author And Source
이 문제에 관하여(20. 완주하지 못한 선수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@balance/20저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)