혼자 정리

13458: 시험 감독 본문

알고리즘 문풀/백준

13458: 시험 감독

tbonelee 2021. 8. 4. 00:01

C++ 1st try

#include <iostream>
#include <vector>
using namespace std;

int N, B, C;
vector<int> A;
long long ret;

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >> N;

    for (int i = 0; i < N; i++) {
        int tmp;
        cin >> tmp;
        A.push_back(tmp);
    }
    cin >> B >> C;

    for (int i = 0; i < N; i++) {
        if (A[i] <= B) {
            ret += 1;
        } else {
            if ((A[i] - B) % C > 0)
                ret += ((A[i] - B) / C) + 2;
            else
                ret += ((A[i] - B) / C) + 1;
        }
    }
    cout << ret << "\n";
}

C++ 2nd try

#include <iostream>
using namespace std;

int N, B, C;
long long ret;

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >> N;
    int A[N];
    for (int i = 0; i < N; i++) {
        cin >> A[i];
    }
    cin >> B >> C;

    for (int i = 0; i < N; i++) {
        if (A[i] <= B) {
            ret += 1;
        } else {
            if ((A[i] - B) % C > 0)
                ret += ((A[i] - B) / C) + 2;
            else
                ret += ((A[i] - B) / C) + 1;
        }
    }
    cout << ret << "\n";
}

C++ 3rd try

#include <iostream>
using namespace std;

int N, B, C;
long long ret;

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >> N;
    int A[N];
    for (int i = 0; i < N; i++) {
        cin >> A[i];
    }
    cin >> B >> C;

    for (int i = 0; i < N; i++) {
        A[i] -= B;
        if (A[i] > 0) {
            if (A[i] % C > 0)
                ret += (A[i] / C) + 2;
            else
                ret += (A[i] / C) + 1;
        } else {
            ret += 1;
        }
    }
    cout << ret << "\n";
}

Python

import sys
input = sys.stdin.readline

N = int(input())
A = []
A = list(map(int, input().split()))

B, C = map(int, input().split())

ret = 0

for i in range(N):
    A[i] -= B
    if A[i] <= 0:
        ret += 1
    else:
        if A[i] % C > 0:
            ret += A[i] // C + 2
        else:
            ret += A[i] // C + 1
print(ret)
  • 세 가지 코드 모두 효율성에 차이는 없었다.
  • 파이썬에서 정수 나눗셈을 하려면 //을 사용.

'알고리즘 문풀 > 백준' 카테고리의 다른 글

14502번: 연구소  (0) 2021.08.05
14500: 테트로미노  (0) 2021.08.04
14496번: 주사위 굴리기  (0) 2021.08.03
11726번: 2×n 타일링  (0) 2021.07.19
9095번: 1, 2, 3 더하기  (0) 2021.07.18