출처 : https://www.acmicpc.net/problem/1268

정답 : https://github.com/stemp12/study/blob/master/acmicpc.net/2016.01/1268.cpp


이 문제는 풀이를 어떻게 할지 생각을 하였다. 그런데 인풋의 최대가 1000이고 학년은 최대 5이므로 완전 탐색으로 해도 O(5*1000*1000)이니 O(5000000) 이 되므로 충분히 가능하다는 결론을 얻어 완전탐색으로 하였다. 분명 더 효율적인 알고리즘도 존재할것인데, 이 문제는 그렇지 않아도 될거같아서 이렇게 풀었다.

다른 방법으로는 그래프적으로 생각하면 좀 더 편할것 같기도 하다.

나는 먼저 학년별로 A학생과 나머지 학생들의 반을 비교하여 같은 반이면 반을 확인하는 배열을 만들어 계산하도록 하였다. 
역시 이방법도 위험할수있지만, 최대 인풋이 1000이므로 1000x1000을 하여도 충분하였다.

그리고 최대값이 같을경우 가장 작은 번호만 출력하라고 하였으므로 뒤에서부터 검색하여 앞녀석이 나오게 하였다.

역시 그렇게 어렵지 않은 문제였다. 

'Algorithm' 카테고리의 다른 글

[AC] 9442 Sort me  (0) 2016.01.28
[AC] 1244 스위치 켜고 끄기  (0) 2016.01.28
[AC] 2526 싸이클  (0) 2016.01.28
[AC] 2672 여러 직사각형의 전체 면적 구하기  (0) 2016.01.28
[AC] 1018 체스판 다시 칠하기  (0) 2016.01.28

+ Recent posts