Development/BOJ
[BOJ] 백준 10158번 : 개미 C++ : 아주정은
아주정은
2020. 2. 20. 09:57
흠...하는게 없어서 한문제 풀어봤다.
처음에는 배열을 사용할려고 했지만 배열크기가 너무 커서 에러가떳다.
그래서 배열 안쓰고 그냥 숫자놀이했다.
처음에는 시간을 받고 while(t--)로 풀었는데 시간초가 많이 커질경우 시간초과가 떳다.
그래서 시간을 2*w랑 2*h로 나눠서 각각 pt, qt를 만들어줬다.
그랬더니 시간초과 극---벅!
암튼 로직은 굉장히 단순하다. bool변수를 선언해줘서 p랑 q가 플러스방향으로 갈지 마이너스 방향으로 갈지 결정해준다.
흠...언제쯤 빡고수될까? 그래프 막 그리고? 어? 구글 잡으러 간다;;;
#include <iostream>
using namespace std;
int main()
{
int w, h,p,q,t;
cin >> w >> h;
cin >> p >> q;
cin >> t;
bool pb = true, qb = true;
int pt = t % (2 * w);
int qt = t % (2 * h);
while (pt--) {
if (p == w) {
pb = false;
}
else if(p==0) {
pb = true;
}
if (pb)
p++;
else
p--;
}
while (qt--) {
if (q == h) {
qb = false;
}
else if (q == 0) {
qb = true;
}
if (qb)
q++;
else
q--;
}
cout << p << " " << q;
}