되는대로 살자

[C언어 기출문제&풀이] 최적의 만날 날짜 구하기 본문

2009~2014/C/C++

[C언어 기출문제&풀이] 최적의 만날 날짜 구하기

malu 2011. 8. 11. 21:30
프로그램 명: when
제한시간: 1 초

ICPC 위원회는 다음 대회 회의를 위하여 가능한 빨리 미팅을 가지려고 한다. 그런데 , 멤버회원들이 너무 바빠 회의날짜를 잡는 것이 쉽지 않다.

위원회는 미팅 날짜를 잡기 위해서 회원들에게 만날수 있는 날을 이메일로 부쳐줄 것을 요구했다.

당신이 해야 할 일은 이메일 리스트를 보고 가능한 많은 사람이 참여할 수 있는 날짜를 구하는 것이다.

입력

입력의 첫 줄은 두 개의 수가 주어진다.

  • 첫 수 N (50 이하의 양의 정수)은 위원회원 수이고,
  • 다음 Q 는 의사 정족수이다 , Q 는 N 보다 같거나 작은 양의 정수이다.

다음 N 라인의 입력 형식은

  • 첫 수는 각 회원의 가능한 날 수 M ( 0 이상 양의 정수) 이 주어지고,
  • 다음 M ( 1 이상 100 이하의 양의 정수) 개의 가능한 일자가 주어진다.
    M Date1 Date2 ... DateM

가능한 날의 1 은 내일 , 2 는 내일의 내일 , 3 은 내일의내일의내일 , .... 을 의미한다.

날은 중복없이 오름차순으로 입력된다.

출력

가장 많은 인원이 참가할 수 있는 날을 출력한다.

단, 의사 정족수를 채울수 있는 날이 없다면 0 을 출력하고 , 답이 여러 개인 경우 빠른 날을 출력한다.

입출력 예

입력

3 2
2 1 4
0
3 3 4 8

출력

4

입력

3 2
4 1 5 8 9
3 2 5 9
5 2 4 5 7 9

출력

5

입력

3 3
2 1 4
3 2 5 9
2 2 4

출력

0

입력

3 3
2 1 2
3 1 2 9
2 2 4

출력

2

보충 설명

입력 데이터
3 2 
4 1 5 8 9 
3 2 5 9 
5 2 4 5 7 9 

1 2 3 4 5 6 7 8 9 
-----------------
*       *     * *
  *     *       *
  *   * *   *   *
5 , 9 중 빠른 날 5 가 답이다.

풀이 : 주어진 조건대로 하면 됩니다.... 알리고 싶은 사항이 있다면
배열에 date를 저장하여 처리합니다. 그러니까
위에서
3 2 
4 1 5 8 9
에서 1 5 8 9 를 배열인자 1,5,8,9에 값을 1씩 추가합니다. 
그리고 그 배열을 순회하면서(순회의 최대값은 입력받을때 따로 처리하세요)
배열의 가장 큰 값이 있는 곳을 저장하면 됩니다.
하하... 쉽죠잉?