-
[백준[자바][13458 시험감독]코딩/알고리즘 2018. 10. 13. 19:37
흠... 좀 고생좀 했다,,
생각못한 반례가 하나 있었다
일단 막 짜려하니까 힘들어서
조건을 생각해봤는데
일단 이문제는 총감독관이 배치가 되야하니
처음에 무조건 뺏다.
거기서 남은 학생수에 대해서 분기점을 나눴는데
코드를 보아하니 훨씬 간단하게 푼 사람들이 수두룩 하다..
시뮬레이션 문제는 좀 더 열심히 풀어야겠다 ㅎㅎ
import java.util.ArrayList; import java.util.Scanner; public class backjoon_13458_시험감독 { static long N, A,B, C; static ArrayList
test_Room = new ArrayList (); static long viewer_Number = 0; public static void main(String[] args) { Scanner sc = new Scanner(System.in); //System.out.println(999995%7); N = sc.nextLong(); for(int i = 0 ; i < N ; i++) { test_Room.add(sc.nextLong()); } B = sc.nextLong(); C = sc.nextLong(); solve(); System.out.println(viewer_Number); } public static void solve() { for(int i = 0 ; i < N ; i++) { long student = test_Room.get(i); if(student == 0 ) { continue; } // 총 감독관 student -= B; viewer_Number += 1; if(student == 0 || student < 0 ) { continue; } //남은 학생이 부감독관 감시수 보다 클때 if( student > C ) { int calDivide = (int) ( student / C ); int calModuler = (int) ( student % C) ; //나누어 떨어진다면 if(calModuler == 0 ) { viewer_Number += calDivide; } else { viewer_Number += calDivide +1; } continue; } //남은 학생이 부감독관 감시수 보다 작을 때 if( student < C ) { viewer_Number += 1; continue; } //남은 학생이 부감독관 감시수랑 같을 때 if( student == C ) { viewer_Number += 1; continue; } } } } '코딩 > 알고리즘' 카테고리의 다른 글
[백준][자바][2234 성곽] (0) 2018.10.20 [ 백준 ][ 자바 ][ 4485 녹색 옷 입은 애가 젤다지? ] (0) 2018.10.16 [백준][자바][11559 Puyo Puyo] (0) 2018.10.13 [백준][자바][1021]회전하는 큐 (0) 2018.10.11 [백준][자바][2146 다리] 해결못함 (0) 2018.10.07