알고리즘 공부/백준
[JAVA 43일차 / 하루 3문제] 1037번, 25192번, 26069번
maverick11471
2025. 4. 2. 09:26
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()); // 총 춤을 출 수 있는 사람 수 출력
}
}