programmers.co.kr/learn/courses/30/lessons/42576
코딩테스트 연습 - 완주하지 못한 선수
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수
programmers.co.kr
예전에 공부했던 코딩테스트 문제입니다.
복습할 겸 포스팅 ㄱㄱ
역시나 코린이인 저에겐 혼자풀기에는 어려웠던 문제입니다.
이 문제를 풀면서 공부했던 것은 컬렉션 프레임워크, entrySet(), keySet(), getOrDefault()
컬렉션 프레임워크의 핵심인터페이스
List
순서가 있는 데이터 집합
데이터의 중복을 허용.
예) 대기자 명단
ArrayList, LinkedList, Stack, Vectior 등
Set
순서를 유지하지 않는 데이터의 집합,
데이터의 중복을 허용하지 않음.
예) 양의 정수집합, 소수집합
HashSet, TreeSet 등
Map
키와 값이 쌍으로 이루어진 데이터의 집합
순서는 유지되지 않음
키는 중복을 허용하지 않고, 값은 중복을 허용함
예) 우편번호, 지역번호(전화번호)
HashMap, TreeMap, Properties 등
Map의 entrySet(), keySet()
entrySet() 메소드는 key, value의 값이 모두 필요할 때 사용
keySet() 메소드는 key의 값만 필요할 때 사용
getOrDefault(Object key, V defaultValue)
찾는 키가 존재한다면 찾는 키의 값을 반환하고, 키가 존재하지 않는다면 기본값을 반환하는 메소드
for(String player : participant) hm.put(player, hm.getOrDefault(player,0)+1);
// participant(참가자) 배열의 값에 차례대로 +1을 해줍니다.
for(String player : completion) hm.put(player, hm.get(player)-1);
// completion(완주자) 배열의 값에 다시 -1 을 해줍니다.
// 그럼 participant와 completion에서 중복되는 값은 0 이되고
// key값을 이용해서 꺼냈을 때 0 이 아닌 사람은 완주하지 못한 사람입니다
끝~~~~~~~~~~~~~~~~
'코딩 테스트 > 문제' 카테고리의 다른 글
[코딩 테스트] 배열 만들기 2 (2) | 2024.12.28 |
---|---|
[백준 2588번] 곱셈 (0) | 2021.04.24 |
[같은 숫자는 싫어] .intValue( ), Casting(형변환) (2) | 2021.04.15 |
[두개 뽑아서 더하기] Arrays.sort() 배열 정렬, length() / size() 비교 (1) | 2021.04.10 |
[K번째 수] Arrays.copyOfRange (3) | 2021.04.09 |