Q. 폰켓몬
import java.util.*;
class Solution {
public int solution(int[] nums) {
HashSet<Integer> set = new HashSet<>();
for (int i = 0; i < nums.length; i++) {
set.add(nums[i]);
// hashset을 만들어 중복을 없앤다.
}
int answer = set.size();
if (answer > nums.length/2) {
answer = nums.length/2;
// set에 담은 포켓몬의 수가 가져가야하는 포켓몬의 수보다 많다면
// 가져가야하는 포켓몬수가 리턴되고
// 가져가야하는 포켓몬 수 보다 set에 담긴 포켓몬 수가 작다면
// set에 담긴 종류만큼 가져갈 수 있다.
}
return answer;
}
}
Q. 완주하지 못한 선수
import java.util.*;
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
Map<String, Integer> map = new HashMap<>();
// map에 선수명, 인원수를 카운트해서 넣은 후
// 완주한 선수 배열에 있으면 -1을 해준다.
// 0이 된다면 완주 한 것
for (String name : participant) {
map.put(name, map.getOrDefault(name, 0) + 1);
// 동명이인이 있는 경우 +1
}
for (String name : completion) {
map.put(name, map.get(name) - 1);
// 해당하는 선수의 value - 1해서 카운트 한걸 빼준다.
}
for (String key : map.keySet()) {
if (map.get(key) != 0) {
return key;
}
}
return answer;
}
}
Q.전화번호부 목록
import java.util.*;
class Solution {
public boolean solution(String[] phone_book) {
boolean answer = true;
Map<String, Integer> map = new HashMap<>();
for (String key : phone_book) {
map.put(key, 1);
}
for (int i=0; i<phone_book.length; i++) {
for (int j=0; j<phone_book[i].length(); j++) {
if (map.containsKey(phone_book[i].substring(0,j))) {
return false;
// 예를들면 1이 key로 존재하는지 -> 19 -> 119존재하는지 확인
}
}
}
return answer;
}
}
Q. 위장
import java.util.*;
class Solution {
public int solution(String[][] clothes) {
int answer = 1;
Map<String, Integer> map = new HashMap<>();
for (int i = 0; i < clothes.length; i++) {
map.put(clothes[i][1], map.getOrDefault(clothes[i][1], 0) + 1);
// 해당 키가 존재하면 value반환 아니면 0을 반환
}
// 종류를 key에 담고 value는 개수를 담는다.
for (String s : map.keySet() ) {
answer *= (map.get(s) + 1); //하거나 안하거나 경우의 수 곱하기
}
answer--;
// 아무것도 안하는 경우 하나를 뺀다.
return answer;
}
}'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| 프로그래머스 | JAVA | 프린터 (0) | 2022.10.18 |
|---|---|
| 프로그래머스 | JAVA | 올바른 괄호 (0) | 2022.10.18 |
| 프로그래머스 | JAVA | 기능개발 (0) | 2022.10.18 |
| 2022.09.25 프로그래머스 알고리즘 공부 (0) | 2022.09.26 |
| 2022.09.24 알고리즘 공부 (1) | 2022.09.25 |