https://programmers.co.kr/learn/courses/30/lessons/42576?language=java
코딩테스트 연습 - 완주하지 못한 선수
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수
programmers.co.kr
Map<Key자료형, Value자료형> m = new HashMap<>()
m.getOrDefault(p,0) : m에 p랑 매칭되는 key가 존재하면 해당 value값 반환하고 없으면 0 반환
m.get(p) : key값이 p인 value값 반환
m.keySet() : m의 key 집합
import java.util.*;
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
Map<String, Integer> m= new HashMap<>();
for(String p : participant){
m.put(p,m.getOrDefault(p,0)+1); //p라는 key가 존재하면 해당 value값반환 없으면 0반환
}
for(String p : completion){
m.put(p,m.get(p)-1);
}
for(String key : m.keySet()){
if(m.get(key)!=0){
answer=key;
break;
}
}
return answer;
}
}
https://programmers.co.kr/learn/courses/30/lessons/42577
코딩테스트 연습 - 전화번호 목록
전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조
programmers.co.kr
Map<> m -> m.length() : m의 크기
m.put(key,value) : m에 (key:value) 삽입
m.containsKey(key) : 해당 key가 m에 존재하면 true 없으면 false
Arrays.sort(배열) : 오름차순 정렬
String[] s -> s.length : s의 크기
a.startsWith(b) : a가 b로 시작하면 True 아니면 false
a.endsWith(b) : a가 b로 끝나면 True 아니면 false
import java.util.*;
class Solution {
public boolean solution(String[] phone_book) {
boolean answer = true;
Map<String,Integer> m = new HashMap<>();
for(String s : phone_book){
m.put(s,1);
}
for(String s : phone_book){
for(int i=1; i<s.length(); i++){
if(m.containsKey(s.substring(0,i))) return false;
}
}
return answer;
}
}
import java.util.*;
class Solution {
public boolean solution(String[] phone_book) {
boolean answer = true;
Arrays.sort(phone_book);
for(int i=0; i<phone_book.length-1; i++){
if(phone_book[i+1].startsWith(phone_book[i])) return false;
}
return answer;
}
}
https://programmers.co.kr/learn/courses/30/lessons/42578
코딩테스트 연습 - 위장
programmers.co.kr
import java.util.*;
class Solution {
public int solution(String[][] clothes) {
int answer = 1;
Map<String,Integer> map = new HashMap<>();
for(String[] c : clothes){
map.put(c[1],map.getOrDefault(c[1],0)+1);
}
for(String key : map.keySet()){
answer*= map.get(key)+1;
}
return answer-1;
}
}
'Algorithm > 자료구조' 카테고리의 다른 글
[프로그래머스] 코딩테스트 고득점 Kit - 힙(HEAP) (JAVA) (0) | 2021.10.02 |
---|---|
[프로그래머스] 코딩테스트 고득점 Kit - 스택/큐 (JAVA) (0) | 2021.10.02 |
[백준] 2470번 : 두 용액 (C++) (0) | 2021.08.30 |
[백준] 5430번 : AC (C++) (0) | 2021.08.23 |
댓글