728x90
반응형
package pm;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
public class pm42576 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String answer ="";
String[] participant = {"k", "i", "e"};
String[] completion = {"k","i"};
//hash사용하기
HashMap<String,Integer> map = new HashMap<String,Integer>();
//이름의 갯수를 hashmap으로 묶어 체크한다.
for(String player:participant) {
map.put(player, map.getOrDefault(player, 0)+1);
System.out.println("player: "+ player);
System.out.println("participant: "+ map.get(player));
}
//위에서 이름의 갯수를 체크했다면 이제 다시 완주한 플레이어의 이름과 비교, 0보다큰 남은이름이 완주하지 못한자 이다.
for(String player:completion) {
map.put(player, map.get(player)-1);
System.out.println("player: "+ player);
System.out.println("completion: "+ map.get(player));
}
//HashMap.keySet() : HashMap이 들고 있는 전체 Key의 배열을 반환하는 함수
//HashMap.get(Key) : Key에 해당하는 Value를 반환하는 함수이다.
//방법1
/*Iterator<Map.Entry<String,Integer>> iter = map.entrySet().iterator();
while(iter.hasNext()) {
Map.Entry<String, Integer> entry = iter.next();
System.out.println("entry: " +entry );
if(entry.getValue() !=0) {
answer = entry.getKey();
break;
}
}*/
//방법2
for(Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println("entry: "+ entry);
if(entry.getValue() !=0) {
answer = entry.getKey();
break;
}
}
System.out.println("answer: " +answer);
}
}
여기서 map을 출력하는 방법이 두가지있는데,
첫번째는 Iterator을 이용한 방법
두번째는 for문을이용해 돌리는 방법이다.
Iterator을 사용하는경우 while을 이용하여 값이 있다면 계속 돌도록해준다.
-> 이때 hasNext() : 값이 있다면 true, 없다면 false를 반환함
-> next()는 다음 요소를 반환함. 즉 가지고있는 내용들을 반환
for문을 이용하는경우 향상된 for문을 이용하여 쭉 돌려줄수도 있다.
-> 바로 내용 반환
또, Map.entrySet를 사용해 키와 값을 모두 얻을수 있다.
->entry.getKey() : 키 반환
->entry.getValue() : 값 반환
https://stove99.tistory.com/96
https://recordsoflife.tistory.com/314
728x90
반응형
'알고리즘 > 코딩테스트' 카테고리의 다른 글
[프머/java] 콜라츠추측_488의 굴레... (0) | 2022.05.25 |
---|---|
[백준] 4344번 (자바풀이) (0) | 2021.11.19 |
[프로그래머스] 2016년_자바풀이 (0) | 2021.11.03 |
[프로그래머스] 나머지가 1이되는 수 찾기(자바풀이) (0) | 2021.11.03 |
[백준/알고리즘] 2438번 별찍기-1 /2439번 별찍기-2 문제 ,(자바 풀이) (0) | 2021.03.21 |
댓글