백준 13458(시험 감독) - Python(파이썬),Java(자바) - 수학
반응형
풀이 방법
① 총감독은 무조건 들어가므로 시험장의 개수를 초기값으로 설정
② 각 시험장의 응시자 수 - (총감독관의 응시자의 수) 를 (부감독관의 응시자의 수)로 나눈 수를 무조건 올림(math.ceil) 처리
※ 주의
시험장의 응시자의 수 - (총감독관의 응시자의 수)의 값이 음수가 될 수 있으므로 max를 사용하여서 음수일 때는 0이 되도록 처리
Python( 파이썬)
import sys
import math
#시험장의 개수
N = int(sys.stdin.readline())
#응시자의 수
A=list(map(int,sys.stdin.readline().split()))
#총감독,부감독 응시자 수
b,c=map(int,sys.stdin.readline().split())
#초기 값을 시험장의 개수로 설정
result=N
for i in A:
#올림 처리 + max를 사용해서 음수의경우 0이 되도록 처리
result += max(math.ceil((i-b)/c),0)
print(result)
자바
※ 주의 할점 답은 int형이 아니라 long으로 해야한다. 정답이 int의 범위를 넘기때문에 틀렸다고 뜬다.
package s16_math;
import java.util.*;
import java.io.*;
public class s01_13458 {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[] A=new int[N];
StringTokenizer st = new StringTokenizer(br.readLine()," ");
for(int i=0;i<N;i++){
A[i]=Integer.parseInt(st.nextToken());
}
st = new StringTokenizer(br.readLine()," ");
int b = Integer.parseInt(st.nextToken());
int c = Integer.parseInt(st.nextToken());
long result = N;
for(int i:A){
if(i-b>0){
result += Math.ceil((i-b)/(double)c);
}
}
System.out.println(result);
}
}
반응형
'[백준] Python,Java로 풀기📖 > 수학' 카테고리의 다른 글
백준 1743(음식물 피하기) - Python(파이썬) - 수학 (0) | 2022.06.24 |
---|---|
백준 1057(토너먼트) - Python(파이썬) - 수학 (0) | 2022.05.27 |