Keep Going

빠르지 않아도 꾸준히

HashMap 5

[실버 3] [Java] 백준 9375번: 패션왕 신해빈

아이디어HashMap을 써서 푸는 문제로 생각했는데, 예시 입력처럼 꼭 Map에 을 넣을 필요는 없다.옷의 이름과 옷의 종류를 입력으로 주는데, 우리가 이름을 쓸 일은 없다. 중요한 것은 옷의 종류가 몇 벌씩 있냐이다.그래서 Map의 Key에 옷의 종류가 없으면 (옷의 종류, 1)을 저장하게 하고만약 들어가있다면 (옷의 종류, 기존 개수 + 1)을 저장하게 했다 그렇게 해서 저장된 HashMap에 예를 들어Headgear가 3개, eyewear가 2개, face가 1개 있다면해빈이가 옷을 입는 경우의 수는 (3+1) x (2+1) x (1+1)이다.Headgear가 3개라면 (입지 않는 경우(0), 1번째 옷 입는 경우, 2번째 옷을 입는 경우, 3번째 옷을 입는 경우)의4가지 경우가 있을 수 있기 때문..

백준/Silver 2025.09.03

[실버 4] [Java] 백준 17219번: 비밀번호 찾기

아이디어간단한 HashMap 문제로 이해하고 풀었다.이건 쿼리가 사이트 주소로만 주어져서 map.get(Query)를 하면 된다. 이를 코드로 구현하면 다음과 같다.import java.io.*;import java.util.HashMap;public class N17219 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); String[]..

백준/Silver 2025.08.28

[실버 4] [Java] 백준 1620번: 나는야 포켓몬 마스터 이다솜

아이디어문제가 엄청 길어서 열심히 봤는데 그냥 프롤로그였다...처음에는 HashMap만 이용해서 풀려 했는데, Value로 Key를 찾으려면 O(n) 순회를 해야해서 시간이 걸리더라그래서 HashMap name2num와 String[] num2name을 이용해서입력이 이름이면 Map, 정수면 배열을 사용하여 조회하게 했다.클래스 연습한다고 클래스로 만들었는데, 좀 더 복잡해진 것 같긴 하다. 이를 코드로 구현하면 다음과 같다.import java.io.*;import java.util.HashMap;public class N1620 { public static void main(String[] args) throws IOException { BufferedReader br = new B..

백준/Silver 2025.08.27

[실버 4] [Java] 백준 10816번: 숫자 카드 2

아이디어첫째 줄에 총 숫자 카드의 수 N둘째 줄에 가지고 있는 숫자 카드들 모두의 정수 N개셋째 줄에 몇 개가 있는지 확인하고 싶은 숫자의 수 M넷째 줄에 몇 개가 있는지 확인하고 싶은 숫자 카드들의 정수 M개 이렇게 입력받는다. 카드의 수가 중복될 수 있고, 나중에 이 카드가 몇개 있는지 확인해야 하므로배열을 사용할 경우 굉장히 시간이 오래 걸릴 수 있어 Map을 쓰기로 했다.첫째 줄과 둘째 줄의 입력을 통해 map에 숫자 카드들과 그 카드의 수를 입력했다. map에 해당 카드 숫자가 없다면 map.put(num, 1)하고만약 map에 해당 카드가 이미 존재한다면 map.put(num, map.get(num) + 1)을 해주었다. 그 후 셋째, 넷째 줄의 입력을 수행할 때에는 map.containsKe..

백준/Silver 2025.07.25

[실버 3] [Java] 백준 16165번: 걸그룹 마스터 준석이

아이디어quiz 스타일이 0인 경우 그룹 이름을 대면 모든 멤버들을 말해야하고1인 경우 멤버 이름으로 그룹 이름을 맞춰야 한다.HashMap을 사용하려 했는데, 기본적으로 HashMap은 Key로 Value를 꺼내는 것에 특화되어 있다고 알고있다따라서 의 memverToGroup과의 GroupToMember 두개를 선언하였다. int N, M을 입력받고N번 for문을 돌리고, 그 안에서 두 HashMap을 채운다. 이때, GroupToMember의 멤버 리스트는 사전순 정렬이 필요하다.그 후 M번 for문을 돌리며 퀴즈를 풀면 된다.퀴즈 스타일이 0이면 iter을 돌려서 멤버를 한줄에 한명씩 출력하고1이면 단순히 value를 출력하면 된다. 이를 코드로 구현하면 다음과 같다.import java.io.B..

백준/Silver 2025.04.29