티스토리 뷰
반응형
https://softeer.ai/practice/info.do?idx=1&eid=394
Softeer
연습문제를 담을 Set을 선택해주세요. 취소 확인
softeer.ai
[문제]
헬스장에서 N명의 회원이 운동을 하고 있다. 각 회원은 1에서 N사이의 번호가 부여되어 있고, i번 회원이 들 수 있는 역기의 무게는 Wi이다. 회원들 사이에는 M개의 친분관계 (Aj, Bj)가 있다. (Aj, Bj)는 Aj번 회원과 Bj번 회원이 친분 관계가 있다는 것을 의미한다. i번 회원은 자신과 친분 관계가 있는 다른 회원보다 들 수 있는 역기의 무게가 무거우면 자신이 최고라고 생각한다. 단, 누구와도 친분이 없는 멤버는 본인이 최고라고 생각한다.
이 헬스장에서 자신이 최고라고 생각하는 회원은 몇 명인가?
[풀이]
import java.util.*;
import java.io.*;
public class Main
{
static int N; // 2<= N <=100000
static int M; // 1<= M <=100000
static int[][] W; // 1<= W <=1000000000
static int A[], B[]; // 1<= A , B<= N, A != B
static int COUNT = 0;
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());
M = Integer.parseInt(st.nextToken());
W = new int[N][2];
A = new int[M];
B = new int[M];
st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++)
{
W[i][0] = Integer.parseInt(st.nextToken());
W[i][1] = 1; // Best
}
for (int i = 0; i < M; i++)
{
st = new StringTokenizer(br.readLine());
A[i] = Integer.parseInt(st.nextToken());
B[i] = Integer.parseInt(st.nextToken());
if (W[A[i] - 1][0] < W[B[i] - 1][0])
{
W[A[i] - 1][1] = 0;
} else if (W[B[i] - 1][0] < W[A[i] - 1][0])
{
W[B[i] - 1][1] = 0;
} else if (W[A[i] - 1][0] == W[B[i] - 1][0])
{
W[A[i] - 1][1] = 0;
W[B[i] - 1][1] = 0;
}
}
for (int i = 0; i < N; i++)
{
if (W[i][1] == 1)
COUNT++;
}
System.out.println(COUNT);
}
}
반응형
'ALL' 카테고리의 다른 글
[Softeer/소프티어][Level3]스마트 물류(Java) (0) | 2023.01.11 |
---|---|
[Softeer/소프티어][Level3]동계 테스트 시점 예측(Java) (0) | 2023.01.11 |
[Softeer/소프티어][Level3]강의실 배정(Java) (0) | 2023.01.11 |
[Softeer/소프티어][Level3]조립라인(Java) (0) | 2023.01.11 |
[Softeer/소프티어][Level4]H-클린알파(Java) (0) | 2023.01.11 |