본문 바로가기

백준/JAVA

[JAVA] 백준_1764

[문제]

1764번: 듣보잡 (acmicpc.net)

 

1764번: 듣보잡

첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.

www.acmicpc.net

[풀이]

우선 HashMap을 생성하여 N개의 엘리먼트를 만든다. 각각의 key와 value는 ('입력한 이름' , 1) 으로 놓는다. 

그 다음 M개의 이름을 입력받는데, getOrDefault 메소드를 이용하여 값을 2로 만든다.

getOrDefault(Object key, Object DefaultValue)

찾는 키가 존재한다면 찾는 키의 값을 반환하고 없다면 기본 값을 반환하는 메소드

  • key : 값을 가져와야 하는 요소의 키
  • defaultValue : 지정된 키로 매핑된 값이 없는 경우 반환 되어야 하는 기본값

입력받은 이름이 map의 엘리먼트 키에 이미 존재한다면 1을 반환하고, 존재하지 않는다면 0을 반환하게 된다. 그 수에 +1을 하면 중복으로 입력된 이름은 value가 2, 한 번만 입력된 이름은 value가 1이 될 것이다.

 

value가 2인 key(여기서는 name)는 ArrayList 타입의 list에 저장한다.

사전 순으로 이름을 배열하라고 했으므로 Collections.sort()를 이용한다.

list는 배열이 아닌 ArrayList 이므로 Collections.sort()를 사용한다.

'백준 > JAVA' 카테고리의 다른 글

[JAVA] 백준_1269  (0) 2023.08.12
[JAVA] 백준_10816  (0) 2023.08.06
[JAVA] 백준_1620  (0) 2023.08.05
[JAVA] 백준_7785  (0) 2023.08.04
[JAVA] 백준_10815  (0) 2023.08.03