반응형
츄르사려고 코딩하는 코집사입니다.
1. [SW expert Academy] SWEA 5431번 민석이의 과제 체크하기 자바(Java)
1) 난이도 : D3
2) 문제번호 : 5431번
3) 문제 출처
swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWVl3rWKDBYDFAXm
2. 문제
민석이는 교수가 되었고, 이번에 처음으로 맡은 과목에 수강생이 N명이다.
민석이는 처음으로 과제를 내었다.
그리고 제출한 사람의 목록을 받았다.
수강생들은 1번에서 N번까지 번호가 매겨져 있고, 어떤 번호의 사람이 제출했는지에 대한 목록을 받은 것이다.
과제를 제출하지 않은 사람의 번호를 오름차순으로 출력하는 프로그램을 작성하라.
3. 제약사항
-
4. 입력
첫 번째 줄에 테스트 케이스의 수 T가 주어진다.
각 테스트 케이스의 첫 번째 줄에는 수강생의 수를 나타내는 정수 N(2≤N≤100)과 과제를 제출한 사람의 수를 나타내는 정수 K(1≤K≤N)가 공백으로 구분되어 주어진다.
두 번째 줄에는 과제를 제출한 사람의 번호 K개가 공백으로 구분되어 주어진다. 번호는 1이상 N이하의 정수이며 같은 번호가 두 번 이상 주어지는 경우는 없다.
5. 출력
각 테스트 케이스마다 과제를 제출하지 않은 사람의 번호를 오름차순으로 출력한다.
6. 풀이
- 이 문제가 왜 D3인지 모르겠다.
- D2 정도 문제가 맞을거 같긴 한데..
- N크기만큼 배열을 만들어서 K-1 값을 배열에 넣어 ++해주고, 0인 것들 출력
7. 소스 코드
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 테스트케이스 입력
int T = sc.nextInt();
for(int tc=1; tc<=T; tc++) {
int N = sc.nextInt(); // 수강생의 수
int K = sc.nextInt(); // 과제를 제출한 수
int[] arr = new int[N];
for(int i=0;i<K;i++) {
arr[sc.nextInt()-1]++;
}
System.out.printf("#%d ",tc);
for(int i=0;i<N;i++) {
if(arr[i]==0) {
System.out.printf("%d ",i+1);
}
}
System.out.println();
}
}
}
반응형
'알고리즘 > SW expert Academy' 카테고리의 다른 글
[SW expert Academy] SWEA 3499번 퍼펙트 셔플 자바(Java) (0) | 2021.02.05 |
---|---|
[SW expert Academy] SWEA 1225번 암호생성기 자바(Java) (0) | 2021.02.04 |
[SW expert Academy] SWEA 5432번 쇠막대기 자르기 자바(Java) (0) | 2021.02.04 |
[SW expert Academy] SWEA 1218번 괄호 짝짓기 자바(Java) (0) | 2021.02.04 |
[SW expert Academy] SWEA 1974번 스도쿠 검증 자바(Java) (0) | 2021.02.03 |
[SW expert Academy] SWEA 1873번 상호의 배틀필드 자바(Java) (0) | 2021.02.03 |
[SW expert Academy] SWEA 1954번 달팽이 숫자 자바(Java) (0) | 2021.02.03 |
[SW expert Academy] SWEA 1284번 수도 요금 경쟁 자바(Java) (0) | 2021.02.02 |
최근댓글