CODING TEST/baekjoon
#30087 - 진흥원 세미나
iamyuunzo
2025. 7. 10. 21:05
📌 문제 정보
- 문제 이름 : #30087번 - 진흥원 세미나
- 문제 링크 : https://www.acmicpc.net/problem/30087
📌 문제 요약
- 핵심 조건: 첫 번째 줄에 진흥이가 신청한 세미나의 수 N이 주어진다. 두 번째 줄부터 N개의 줄에 진흥이가 신청한 세미나의 목록이 주어진다. 어느 교실에서 열리는지 알아보자
- 제한: 세미나는 지문의 표에 있는 7개 중 하나로 주어지며, 중복되는 세미나는 없다.
📌 내 풀이 및 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
for (int i = 0; i < N; i++) {
String seminar = sc.next();
if (seminar.equals("Algorithm")) {
System.out.println("204");
} else if (seminar.equals("DataAnalysis")) {
System.out.println("207");
} else if (seminar.equals("ArtificialIntelligence")) {
System.out.println("302");
} else if (seminar.equals("CyberSecurity")) {
System.out.println("B101");
} else if (seminar.equals("Network")) {
System.out.println("303");
} else if (seminar.equals("Startup")) {
System.out.println("501");
} else {
System.out.println("105");
}
}
}
}
<-- 내가 처음에 어떻게 풀었는지 -->
- 문제 푸는 흐름은 알고 있었으나 문법이 기억이 안났음. 문법 힌트 받고 다시 풀어서 맞춤. (equals)
- 문자열 비교는 ==을 쓰지 않음. .equals()!!!
📌 다른 풀이
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 1️⃣ Map 만들기: 세미나 이름 → 교실번호
Map<String, String> seminarMap = new HashMap<>();
seminarMap.put("Algorithm", "204");
seminarMap.put("DataAnalysis", "207");
seminarMap.put("ArtificialIntelligence", "302");
seminarMap.put("CyberSecurity", "B101");
seminarMap.put("Network", "303");
seminarMap.put("Startup", "501");
seminarMap.put("TestStrategy", "105");
// 2️⃣ 세미나 수 입력
int N = sc.nextInt();
// 3️⃣ N번 반복
for (int i = 0; i < N; i++) {
String seminar = sc.next(); // 세미나 이름 하나 입력
// 4️⃣ Map에서 교실 번호 찾기
String room = seminarMap.get(seminar);
System.out.println(room); // 출력
}
}
}
<-- 풀이 요약 -->
- Map : 세미나 이름 -> 교실번호 저장 / 입력받은 세미나 이름 -> 교실번호 찾기 / 여러 개 입력 -> for 안에서 next()
- 표 같은 자료는 Map으로 관리하면 깔끔함.
📌 새로 배운 문법
<-- 이번 문제에서 새로 배운 Java 문법 정리 -->
** Map 다시 정리 **
// 기본 선언 문법
import java.util.HashMap;
import java.util.Map;
Map<String, String> map = new HashMap<>();
// 값 넣기 (put)
map.put("Algorithm", "204");
map.put("Network", "303");
// 값 가져오기 (get)
String room = map.get("Algorithm"); // "204"
// for-each문으로 모든 Key-Value 돌기
for (String key : map.keySet()) {
System.out.println(key+ "->" + map.get(key));
}
[자주 쓰는 메서드 총정리]
| 메서드 | 설명 | 예시 |
| put(K key, V value) | 값 저장 | map.put("A", "1") |
| get(K key) | 값 가져오기 | map.get("A") |
| containsKey(K key) | Key 존재 여부 | map.containsKey("A") |
| remove(K key) | Key-Value 삭제 | map.remove("A") |
| size() | 원소 개수 | map.size() |