혼자 정리
13458: 시험 감독 본문
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 |