2019. 4. 10. 18:14ㆍ알고리즘문제/백준
얼마전부터 계속 푸는 문제마다
틀렸습니다만 나오는데 원인을 못찾고 있다. 백준 부들부들 ,,;;;;
이전에 풀었던 문제들은 풀이 방법이 복잡한터라 한창 공부중인 내가 잘못 생각한 부분이 있거나 빠트린 케이스가 있겠거니 하고
계속 원인을 찾고 있는 상황인데
오늘 푼 문제(지금 이 문제 시험감독)는 정말 이해가 안된다................... ;
제가 요즘 다양한 공부를 하루종일하고 있어서 섬세하게, 논리적으로 확인이 안되고 있을 수 있습니다.
혹시 뭐가 잘못되었는지 보이는분들, 의견 댓글 달아주시면 정말 감사하겠습니다 !!!!(절실)
문제
https://www.acmicpc.net/problem/13458
생각할 점
1. 시험장에 총감독관은 무조건 1명씩 들어간다. (최소 최대 1명)
2. 부감독관은 0명 이상 들어간다.
따라서 우리는 각 시험장마다 들어가는 부감독관의 수를 구해주면 된다.
부감독관의 수는 학생 수 - 총감독관이 감시할 수 있는 수 의 몫과 나머지에 따라 결정된다.
아래와 같이 3가지가 경우가 존재하고 1번째와 2번째는 나머지가 0이 아닌 것으로 함께 묶어
조건을 2가지로 처리할 수 있다.
// 몫 = 0 나머지 != 0 cn = 1; 몫 + 1;
// 몫 != 0 나머지 == 0 나누어 떨어짐 cn = 1; cn = 몫;
// 몫 != 0 나머지 != 0 cn = 몫 + 1;
풀이
틀렸습니다가 나오는 코드입니다. 참고만 해주세요.
import java.util.Scanner;
public class Main {
static int N;
static int[] A;
static int B, C;
static int bn, cn;
static int result = 0;
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
N = scan.nextInt();
A = new int[100001];
for(int i = 0; i < N; i++) {
A[i] = scan.nextInt();
}
B = scan.nextInt(); // 총 감독관
C = scan.nextInt(); // 부 감독관
bn = 1;
for(int i = 0; i < N; i++) {
cn = 0;
int temp = A[i] - B; // 부 감독관이 필요한 수
if(temp % C != 0) cn = temp/C + 1;
else {
cn = temp/C;
}
result += bn + cn;
}
System.out.println(result);
}
}
참고
제 풀이가 틀렸는지 확인할 때 참고하였습니다.
언어만 다를 뿐 흐름은 같아 보입니다. ㅜㅜ 흑흑 (나는 왜 틀린걸까)
https://blockdmask.tistory.com/156
'알고리즘문제 > 백준' 카테고리의 다른 글
백준_달이 차오른다, 가자._1194[Java] (0) | 2019.04.12 |
---|---|
백준_욕심쟁이 판다_1937[Java] (0) | 2019.04.12 |
백준_구슬 탈출2[Java]_도움요청 (0) | 2019.04.09 |
백준_주사위 굴리기[Java]_도움요청 (0) | 2019.04.07 |
백준_계란으로 계란치기[Java] (0) | 2019.04.03 |