기본적인 로직은 어렵지 않은 문제입니다. 다만 변수에 들어갈 수 있는 최댓값을 고려해서 자료형을 정해줘야 합니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
long[] students = new long[N];
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
for(int i =0 ; i< N; i++) students[i] = Integer.parseInt(st.nextToken());
st = new StringTokenizer(br.readLine(), " ");
int B = Integer.parseInt(st.nextToken());
int C = Integer.parseInt(st.nextToken());
long ans = N;
for(int i = 0; i < N; i++) {
students[i] -= B;
if(students[i] <= 0) continue;
if(students[i] % C == 0) ans+= students[i] / C;
else ans += (students[i] / C) + 1;
}
System.out.println(ans);
}
}
맨 처음 풀 때 각 교실마다 반복문을 돌려서 빼주면서 카운트를 셌더니 시간 초과가 떴습니다.
그래서 나눈 몫을 구해서 답을 구해줬습니다.
이 때 만약 남은 학생 수가 C
로 나누어 떨어진다면 나뉘는 몫
을, 그렇지 않다면 몫 + 1
이 되어야 합니다.
감사합니다..
'Algorithm > BOJ' 카테고리의 다른 글
[BOJ-14500][시뮬레이션/DFS] 테트로미노 - Java (0) | 2020.08.16 |
---|---|
[BOJ-14499][시뮬레이션] 주사위 굴리기 - Java (0) | 2020.08.13 |
[BOJ-12100][시뮬레이션/스택] 2048 (Easy) - Java (0) | 2020.08.11 |
[BOJ-1717][Disjoint-Set] 집합의 표현 - Java (0) | 2020.08.09 |
[BOJ-2468][BFS] 안전 영역 - Java (0) | 2020.08.07 |