최근에 개발하느라 코테 공부를 진짜 안했다
반성중..
스프링으로 개발 계속 했으니까 잘하겠지 했는데 걍 아님.. 자동완성에 길들여져서 메서드 외운게 다 날아간거같다
https://school.programmers.co.kr/learn/courses/30/lessons/42576
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
이런식으로 참가자와 완주자가 있고, 참가자 중 완주를 하지 못한 사람을 찾는 문제이다.
처음에는 해시맵에 넣고 일치하지 않는거 빼면 되겠네 했는데
중복이 있다고 한다(문제를 잘 읽자)
그래서 해시맵에다가 각 이름과 갯수를 넣고, 완주자를 순회하면서 갯수(value)의 수를 하나씩 줄여나가도록 했다.
그 다음 해시맵을 순회하면서 value가 0이 아닌 값을 발견하면 리턴하도록 하였다.
다른 사람의 코드를 참고하면서 알게 된건데 hashmap.keySet()하면 해시맵 내부의 키들을 리스트로 받을 수 있다.
또한 hashmap.containsKey()메서드를 사용하면 해당 키가 이미 존재하는지 알 수 있다.
import java.io.*;
import java.util.*;
class Solution {
public String solution(String[] participant, String[] completion) {
Map<String,Integer> hashmap = new HashMap<>();
for(String now : participant){
if(hashmap.containsKey(now)){
hashmap.put(now,hashmap.get(now) +1);
}
else{
hashmap.put(now,1);
}
}
for(String now : completion){
hashmap.put(now,hashmap.get(now)-1);
}
for(String now : hashmap.keySet()){
if(hashmap.get(now) != 0){
return now;
}
}
return null;
}
}
'알고리즘 > 프로그래머스 문제풀이' 카테고리의 다른 글
[프로그래머스 JAVA] 기능개발 (2) | 2025.05.15 |
---|