코딩테스트 연습 기록

이종길·2022년 2월 19일
0

코딩테스트 연습

목록 보기
79/128

2022.02.19 56일차

백준 9375번 (패션왕 신해빈)

문제

해빈이는 패션에 매우 민감해서 한번 입었던 옷들의 조합을 절대 다시 입지 않는다. 예를 들어 오늘 해빈이가 안경, 코트, 상의, 신발을 입었다면, 다음날은 바지를 추가로 입거나 안경대신 렌즈를 착용하거나 해야한다. 해빈이가 가진 의상들이 주어졌을때 과연 해빈이는 알몸이 아닌 상태로 며칠동안 밖에 돌아다닐 수 있을까?

나의 풀이

  1. 종류에 따른 의상을 구분해야 하기 때문에 Map 사용(키 - 종류, 값 - 개수)
  2. 의상을 안입는 경우도 고려하기 위해 처음 나오는 종류의 의상이면 2로 추가, 마지막에 알몸인 경우 고려하여 1빼기
  3. 모든 경우의 수 - 각각의 키에 따른 값 곱하면서 카운트에 더하기(마지막 1빼기)
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));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int i = 0; i < T; i++) {
            int N = Integer.parseInt(br.readLine());
            int count = 1;
            Map<String, Integer> map = new HashMap<>();

            for (int x = 0; x < N; x++) {
                st = new StringTokenizer(br.readLine());
                String item = st.nextToken();
                String kind = st.nextToken();

                if (map.containsKey(kind)) {
                    map.put(kind, map.get(kind) + 1);
                } else {
                    map.put(kind, 2);
                }
            }
                for (Integer value : map.values()) {
                    count *= value;
                }
            System.out.println(count - 1);
        }
    }
}

생각하기

profile
Go High

0개의 댓글

관련 채용 정보