본문 바로가기
알고리즘 공부/백준

[JAVA 43일차 / 하루 3문제] 1037번, 25192번, 26069번

by maverick11471 2025. 4. 2.

1. 1037번 약수

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));
        int n = Integer.parseInt(br.readLine()); // 진짜 약수 개수
        StringTokenizer st = new StringTokenizer(br.readLine());

        int min = Integer.MAX_VALUE;  // 최솟값 저장
        int max = Integer.MIN_VALUE;  // 최댓값 저장

        while (st.hasMoreTokens()) {
            int num = Integer.parseInt(st.nextToken());
            min = Math.min(min, num);
            max = Math.max(max, num);
        }

        System.out.println(min * max);  // N 출력
    }
}

2. 25192번 인사성 밝은 곰곰이

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));
        int N = Integer.parseInt(br.readLine()); // 채팅 기록 개수
        
        Set<String> users = new HashSet<>(); // 현재 채팅방의 유저들 저장
        int count = 0; // 곰곰이가 인사한 횟수
        
        for (int i = 0; i < N; i++) {
            String input = br.readLine();
            
            if (input.equals("ENTER")) {
                // 새로운 채팅방이 시작되므로, Set을 초기화
                users.clear();
            } else {
                // 새로운 유저라면 인사 카운트 증가
                if (users.add(input)) {
                    count++;
                }
            }
        }

        System.out.println(count);
    }
}
  • ENTER가 입력되면 Map을 초기화 시켜서 새로운 카운트가 세어질 수 있도록 한다.

3. 26069번 붙임성 좋은 총총이

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));
        int N = Integer.parseInt(br.readLine()); // 기록 개수
        
        Set<String> dancers = new HashSet<>(); // 춤을 출 수 있는 사람 저장
        dancers.add("ChongChong"); // 총총이는 처음부터 춤을 출 수 있음
        
        for (int i = 0; i < N; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            String a = st.nextToken();
            String b = st.nextToken();

            // 둘 중 한 명이라도 춤을 출 수 있다면, 두 사람 모두 추가
            if (dancers.contains(a) || dancers.contains(b)) {
                dancers.add(a);
                dancers.add(b);
            }
        }

        System.out.println(dancers.size()); // 총 춤을 출 수 있는 사람 수 출력
    }
}