https://www.acmicpc.net/problem/2455
오랜만에 문제를 푸는 거라 진짜 쉬운 걸로 워밍업을 하려고했는데.. 두번의 실패를 겪었다...
집중을 잘 못했던 건지.. 그냥 멍청했던건지.. 뭐 둘 다인 것 같다.
이 문제는 4개의 역 중에서 기차에 가장 사람이 많았을 때 사람의 수?를 구하면 되는 문제였다.
탄사람과 내린 사람의 차이를 첫번째 역에서 탄 사람에 더해가면서 그 중 가장 큰 수를 구하면 된다.
처음 코드는 진짜 풀면서도 이렇게 하는거 맞나..? 이렇게까지 한다고..? 이런 생각이 계속 드는 풀이였다..
#include<iostream>
using namespace std;
int a[4][2];
int b[4];
int temp[2];
int maxi ;
int main() {
cin.sync_with_stdio(0);
cin.tie(0);
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 2; j++) {
cin >> a[i][j];
}
}
for (int k = 0; k < 4; k++) {
b[k] = a[k][1] - a[k][0];
}
maxi = b[0];
temp[0] = b[0] + b[1];
temp[1] = b[0] + b[1] + b[2];
if (maxi < temp[0] || maxi < temp[1]) {
if (temp[0] > temp[1]) maxi = temp[0];
else maxi = temp[1];
}
cout << maxi;
}
바로 이 코드인데 굳이 2차원 배열이 필요했는지.. ?
두번째 코드는
#include<iostream>
using namespace std;
int a, b;
int maxi ,temp;
int main() {
cin.sync_with_stdio(0);
cin.tie(0);
for (int i = 0; i < 4; i++) {
cin >> a >>b;
temp += (b - a);
if (maxi < temp) maxi = temp;
}
cout << maxi;
}
이 코드였다.
쉬운 문제였는데.. 멍청이마냥 시간이 굉장히 오래걸렸다..
왜 모호하다고 했는지 알 수가 없다.. 왜인가요?
'공부' 카테고리의 다른 글
Stack과 Queue BOJ 10845, 9012, 4949 (9) | 2022.05.26 |
---|---|
소수의 굴레 BOJ 1978,1929, 2581 (5) | 2022.05.06 |
나의 휴학 계획을 세우다. (5) | 2022.03.02 |
BOJ 14425 해결 그리고 시간초과 (0) | 2022.01.16 |
BOJ 10773 해결과 개선 (0) | 2022.01.13 |