코깽이의 코딩일기

Java 백준 16165 걸그룹 마스터 본문

PS/백준

Java 백준 16165 걸그룹 마스터

코깽이 2024. 2. 5. 17:33
반응형

백준 링크

https://www.acmicpc.net/problem/16165

 

16165번: 걸그룹 마스터 준석이

정우는 소문난 걸그룹 덕후이다. 정우의 친구 준석이도 걸그룹을 좋아하지만 이름을 잘 외우지 못한다는 문제가 있었다. 정우는 친구를 위해 걸그룹 개인과 팀의 이름을 검색하여 외우게 하는

www.acmicpc.net


문제

입력

출력

입출력 예시

 


제출한 코드

import java.io.*;
import java.util.*;

public class Main {
	static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	static StringTokenizer st;

	static int N, M;
	static ArrayList<ArrayList<String>> data = new ArrayList<>();

	public static void main(String[] args) throws IOException {
		st = new StringTokenizer(br.readLine());

		N = Integer.parseInt(st.nextToken());
		M = Integer.parseInt(st.nextToken());
		// 걸그룹 N개를 저장할 ArrayList 생성
		for (int i = 0; i < N; i++) {
			data.add(new ArrayList<>());
		}
		// 걸그룹 data 추가
		for (int i = 0; i < N; i++) {
			// 걸그룹 이름 입력받기
			data.get(i).add(br.readLine());
			// 입력받을 걸그룹 멤버 수
			int memberCnt = Integer.parseInt(br.readLine());
			// 걸그룹 멤버 이름 입력 받기
			for (int j = 0; j < memberCnt; j++) {
				data.get(i).add(br.readLine());
			}
		}
		// 질문 시작
		for (int i = 0; i < M; i++) {
			String inputData = br.readLine();
			int quizType = Integer.parseInt(br.readLine());
			// 팀 이름 출력
			if (quizType == 1) {
				for (int j = 0; j < N; j++) {
					if (data.get(j).contains(inputData)) {
						System.out.println(data.get(j).get(0));
					}
				}
			}
			// 멤버 이름 출력
			else {
				TreeSet<String> names = new TreeSet<>();
				for (int j = 0; j < N; j++) {
					if (data.get(j).contains(inputData)) {
						for (int z = 1; z < data.get(j).size(); z++) {
							names.add(data.get(j).get(z));
						}
					}
				}
				for(String name :names) {
					System.out.println(name);
				}

			}
		}
	}

}

 

1. 동적으로 데이터 입력을 받기 위해 ArrayList에 저장한다.

2. 0번 index에는 걸그룹 이름을 저장하고 이어지는 걸그룹 멤버 수만큼 이름을 저장해 준다.

3. 팀 이름을 출력해야 하는 경우 contains함수로 몇 번째 ArrayList에 존재하는지 확인 후 해당 ArrayList의 0번 인덱스의 값만 출력한다.

4. 멤버 이름을 출력해야 하는경우 팀 이름을 출력해야하는 경우와 동일하게 contains로 확인 후 해당 ArrayList의 0번이 아닌 1번 인덱스부터 출력한다.

반응형

'PS > 백준' 카테고리의 다른 글

Java 백준 1448 삼각형 만들기  (0) 2024.02.13
Java 백준 1342 행운의 문자열  (0) 2024.02.05
Java 백준 2866 문자열 잘라내기  (1) 2024.02.05
Java 백준 13305 주유소  (0) 2024.02.05
Java 백준 14675 단절점과 단절선  (2) 2024.01.27