일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 숙련기술원
- node exporter
- EC2
- cloud-config
- ENI
- 백준
- 4575
- docker #dockerfile #도커 #도커파일
- ecr.api
- dataroot
- ecr.dkr
- VPC
- endpoint
- ssh
- docker
- kubernetes #k8s #기본 #명령어
- Metric
- keypair
- 11531
- kubernetes #k8s #구성요소 #작동원리 #핵심요소
- imds
- prometheus
- 블로그 소개 #공지
- googleauthenticator
- 후기
- 도커
- 알고리즘
- AWS
- 합격전략
- docker #도커 #기본명령어
Archives
- Today
- Total
ISFJ 개발자의 이야기
백준 ACM 대회 채점 - 11531 본문
오늘은 백준 11531문제를 풀어봤습니다.
문제
결과적으로는 푼 문제 수와 총 걸린시간 (패널티를 포함한)을 구하는 문제입니다.
아래의 사진과 같이 패널티는 푼 문제에 대해서만 매겨지고 문제를 맞힌 시각 + 틀린 횟수 * 20이라는 공식을 사용하면 풀 수 있는 문제입니다.
풀이
#include <iostream>
#include <cstring>
using namespace std;
int n, ans, cnt, arr[26];
void solve() {
while (true) {
char c;
string s;
cin >> n;
if (n == -1) {
cout << cnt << ' ' << ans;
break;
}
cin >> c >> s;
if (s == "wrong") {
arr[c - 'A']++;
} else if (s == "right") {
ans += n + arr[c - 'A'] * 20;
cnt++;
}
}
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
solve();
return 0;
}
C++을 사용해서 풀었으며, 위에 나온 공식을 사용해서 코드를 써나가면 됩니다.
종료조건은 -1 이 입력되면 종료되므로 If문을 사용해서 조건에 맞을 시 코드가 종료되도록 구현하였습니다.
가장 중요한 부분인 아래의 코드에서는 s라는 변수에 값이 "wrong" 일 시 틀린 횟수를 구해야 하므로 "arr[c - 'A']++;" 을 통해 구현하였고 s라는 변수에 값이 "right" 일시 맞은 경우 이므로 ans라는 변수에 문제에서 제공해준 공식을 사용해 해당하는 문제에 주소에 대한 배열의 값의 총 걸린 시간을 저장하도록 구현하였습니다.
cin >> c >> s;
if (s == "wrong") {
arr[c - 'A']++;
} else if (s == "right") {
ans += n + arr[c - 'A'] * 20;
cnt++;
}
'알고리즘' 카테고리의 다른 글
백준 Refrigerator Magnets - 4575 (0) | 2025.06.13 |
---|