-
https://www.acmicpc.net/problem/10816
10816번: 숫자 카드 2
첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,
www.acmicpc.net
https://github.com/JUNGSOONIL/JAVA/blob/main/BAEKJOON%2010816
GitHub - JUNGSOONIL/JAVA: JAVA 소스 코드
JAVA 소스 코드. Contribute to JUNGSOONIL/JAVA development by creating an account on GitHub.
github.com
해당 문제는 상근이가 가진 카드가 주어지고 정수 M개가 주어졌을 때 이정수를 상근이가 가지고 있으면
가지고 있는 총개수를 아니면 0을 출력해주는 문제다.
해당 문제는 10815 숫자카드 업그레이드 버전이며, 이진 탐색과 map을 이용해서 해결했다.
https://soonil.tistory.com/123
Baekjoon 10815 숫자 카드 JAVA
https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드..
soonil.tistory.com
처음에 배열에 상근이가 가진 카드를 모두 입력받고, 추가로 map에 해당 값을 key로 하고 value로는 가지고 있는
개수를 넣어준다 map.getOrDefault(a, b) 이용 map에 a를 키로 하는 값이 존재하면 값을 가져오고 없으면 b 값을 가짐
이후 배열을 정렬해준다(이진 탐색을 위해)
이후 정수 M개에 대해서 이진 탐색을 하는데 만약 결괏값이 음수이면 해당 값은 존재하지 않는단 소리
위의 조건을 통해 가지고 있는지 여부를 판단해 가지고 있으면 map.get()을 통해 가지고 있는 개수를 가져오고
StringBuilder에 넣어준 뒤 출력해주었다.
728x90'알고리즘 > Baekjoon' 카테고리의 다른 글
Baekjoon 15654 N과 M (5) JAVA (0) 2021.11.07 Baekjoon 15652 N과 M (4) JAVA (0) 2021.11.07 Baekjoon 10815 숫자 카드 JAVA (0) 2021.11.07 Baekjoon 15651 N과 M (3) JAVA (0) 2021.11.06 Baekjoon 15650 N과 M (2) JAVA (0) 2021.11.06 댓글