728x90
728x90
https://www.acmicpc.net/problem/1043
1043번: 거짓말
지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게
www.acmicpc.net
워낙 데인적이 많아서.. 삼고초려하고 돌다리 엄청 두드린거 치고 쉽게 풀렸다..!
앞선 문제와 더불어 속도가 빨라진거 같아서 조큼 뿌듯..?(문제가 쉬웠던 것도 있지만.. 좋게 생각해야지)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class Main {
static int N, M;
static ArrayList<Integer> trueMan = new ArrayList<>();
static ArrayList<Integer>[] party;
static boolean[] lie;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
N = Integer.parseInt(st.nextToken()); //사용X
M = Integer.parseInt(st.nextToken());
st = new StringTokenizer(br.readLine());
int trueN = Integer.parseInt(st.nextToken());
if(trueN==0) {
System.out.print(M);
return;
}
for(int i=0; i<trueN; i++) {
int person = Integer.parseInt(st.nextToken());
trueMan.add(person);
}
party = new ArrayList[M];
lie = new boolean[M];
for(int i=0; i<M; i++) {
st = new StringTokenizer(br.readLine());
int partyN = Integer.parseInt(st.nextToken());
party[i] = new ArrayList<>();
for(int j=0; j<partyN; j++) {
int attend = Integer.parseInt(st.nextToken());
party[i].add(attend);
}
}
talk();
int result = 0;
for(int i=0; i<M; i++) {
if(lie[i]==false) {
result = result + 1;
}
}
System.out.print(result);
}
public static void talk() {
int past = trueMan.size();
for(int i=0; i<trueMan.size(); i++) {
for(int j=0; j<M; j++) {
for(int m=0; m<party[j].size(); m++) {
if(party[j].get(m) == trueMan.get(i)) {
lie[j] = true;
for(Integer a : party[j]) {
if(!trueMan.contains(a)) {
trueMan.add(a);
}
}
}
}
}
}
if(past!=trueMan.size()) {
talk();
}
}
}
728x90
728x90
'[Java]BaekJoon.AC' 카테고리의 다른 글
[Java]백준 BaekJoon.AC 2096 : 내려가기 (다이나믹 프로그래밍) (0) | 2022.02.02 |
---|---|
[Java]백준 BaekJoon.AC 1967 : 트리의 지름 (dfs, Tree) (0) | 2022.01.09 |
[Java]백준 BaekJoon.AC 1504 : 특정한 최단 경로 (다익스트라, ArrayList) (0) | 2021.12.10 |
[Java]백준 BaekJoon.AC 16236 : 아기 상어 (Queue, bfs) (0) | 2021.12.08 |
[Java]백준 BaekJoon.AC 17070 : 파이프 옮기기1 (다이나믹 프로그래밍, Dot) (0) | 2021.12.06 |
[Java]백준 BaekJoon.AC 15686 : 치킨 배달 (브루트포스, Dot) (0) | 2021.12.03 |
[Java]백준 BaekJoon.AC 14502 : 연구소 (너비우선탐색-bfs, 브루트포스 알고리즘) (0) | 2021.11.29 |
[Java]백준 BaekJoon.AC 13549 : 숨바꼭질3 (너비우선탐색-bfs, Queue) (0) | 2021.11.24 |