본문 바로가기

해시를사용한집합과맵9

[Baekjoon] 1764 - 듣보잡 📝 문제 🔑 풀이 과정 이 문제는 듣도 보도 못한 사람의 집합과 보도 못한 사람의 집합 총 2개의 집합의 교집합을 구하는 기본적인 집합 문제이다. 어려운 건 없었고, HashSet을 정렬하려면 List로 변환시킨 후 정렬해야 된다는 것을 알았다. 🔓 답안 import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(S.. 2023. 7. 7.
[Baekjoon] 10816 - 숫자 카드 2 📝 문제 🔑 풀이 과정 10815번 숫자 카드 문제랑 다른 조건은 다 똑같고, 이 문제는 같은 카드를 입력 받을 수 있다는 것, 카드의 개수를 출력해야 한다는 점이 다른 것. 10815번 문제는 정렬 + 이분 탐색을 사용해서 존재 여부를 출력했다. 이번 10816번 문제는 Map에 key를 숫자 카드에 적힌 정수, value를 숫자 카드의 개수로 담아서 해결했다. · 처음 상근이가 가지고 있는 숫자 카드들을 입력 받을 때 Map이 입력받은 숫자를 key로 가지고 있지 않으면 처음 입력 한다는 것 → put(숫자, 1) 을 넣어주자. (1개 있다는 뜻) Map이 입력받은 숫자를 key로 가지고 있다면 이미 숫자카드를 가지고 있다는 것. 개수를 추가해 주어야 한다. → replace(숫자, 기존 value .. 2023. 6. 11.
[Baekjoon] 17219 - 비밀번호 찾기 📝 문제 🔑 풀이 과정 class 3 중에서 미해결 문제를 보다가, 이게 왜 class3지? 하면서 풀었던 문제. ① 처음에는 2차원 배열, 이중 for문을 사용해서 문제를 풀이했다. 행이 n, 열이 2인 2차원 배열을 생성해서, n[0]에는 사이트의 주소, n[1]에는 비밀번호를 넣어준다. 그 후 사이트 주소를 입력받고, 0부터 N-1까지 배열을 탐색하면서 사이트 주소(n[0])가 같은 것을 찾으면, 그것의 비밀번호(n[1])를 출력하는 방식 그러나 시간 초과로 오답처리가 되었다. 이건 생각해보면 당연한건데 N = 10^5, M = 10^5로, 이중 for문을 돌리면 10^10이므로 시간 초과가 난다. 문제 처음 볼 때 시간을 생각을 안 한 것도 아니었는데, 제한시간이 5초인걸 보고 순간 잘못 계산 했.. 2023. 3. 24.