ddubi

백준 16165 : 걸그룹 마스터 준석이 java 본문

코테 문제풀이

백준 16165 : 걸그룹 마스터 준석이 java

ddubi__ 2022. 10. 21. 09:27

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

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

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

www.acmicpc.net

  • 풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class back_16165 {
	
	static String[] girlGroupName = null;
	static ArrayList<List<String>> girlGroupList = null;
	static int group;
	static int quiz;

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String temp[] = br.readLine().split(" ");
		
		group = Integer.parseInt(temp[0]);
		quiz = Integer.parseInt(temp[1]);
		
		
		girlGroupList = new ArrayList<List<String>>();
		girlGroupName = new String[group];
		for(int i=0; i<group; i++) {
			List<String> girlGroup = new ArrayList<String>();
			girlGroupName[i] = br.readLine();
			
			int n = Integer.parseInt(br.readLine());
			for(int j=0; j<n; j++) {
				girlGroup.add(br.readLine());
			}
			Collections.sort(girlGroup);
			girlGroupList.add(girlGroup);
		}
		
		// quiz
		for(int i=0; i<quiz; i++) {
			String context = br.readLine();
			int choice = Integer.parseInt(br.readLine());
			
			if(choice == 0) { // 모든 걸그룹의 이름을 대라
				sayMemberName(context);
			} else if(choice == 1) { // 해당 멤버가 있는 걸그룹명을 대라
				sayGroupName(context);
			}
		}
	}

	private static void sayGroupName(String context) {
		for(int i=0; i<group; i++) {
			if(girlGroupList.get(i).contains(context)) {
				System.out.println(girlGroupName[i]);
			}
		}
	}

	private static void sayMemberName(String context) {
		for(int i=0; i<group; i++) {
			String groupName = girlGroupName[i];
			if(groupName.equals(context)) {
				for(int j=0; j<girlGroupList.get(i).size(); j++) {
					System.out.println(girlGroupList.get(i).get(j));
				}
			}
		}
	}
}

시간이 없어서 직관적으로 대충 풀었는데
재밌게 풀수있는 방법이 있을것 같아 다시 풀어봐야겠다고 생각하는 문제.
난이도는 어렵지 않다

Comments