※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 10158번 문제인 개미이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/10158
10158번: 개미
가로 길이가 w이고 세로 길이가 h인 2차원 격자 공간이 있다. 이 격자는 아래 그림처럼 왼쪽 아래가 (0,0)이고 오른쪽 위가 (w,h)이다. 이 공간 안의 좌표 (p,q)에 개미 한 마리가 놓여있다. 개미는 오
www.acmicpc.net
개미의 x축방향 움직임과 y축방향 움직임은 서로 영향을 주지 않는다는 것을 확인하자.
또한, 개미의 x축방향 움직임의 주기는 w*2, y축방향 움직임의 주기는 h*2가 된다는 점을 확인하자.
이를 이용해 움직여야하는 시간 T를 x축, y축 방향의 움직임의 주기로 각각 나눈 나머지를 이용하여 개미의 위치를 시뮬레이션으로 구하면 문제를 해결할 수 있다.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int R, C; cin >> C >> R;
int r, c; cin >> c >> r;
int T; cin >> T;
int rT = T % (R * 2), cT = T % (C * 2);
int dir = 1;
while (rT--) {
if (r == 0 || r == R) dir *= -1;
r += dir;
}
dir = 1;
while (cT--) {
if (c == 0 || c == C) dir *= -1;
c += dir;
}
cout << c << ' ' << r;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 2023 // C++] 신기한 소수 (0) | 2021.11.13 |
---|---|
[BOJ 1188 // C++] 음식 평론가 (0) | 2021.11.12 |
[BOJ 1024 // C++] 수열의 합 (0) | 2021.11.10 |
[BOJ 9934 // C++] 완전 이진 트리 (0) | 2021.11.09 |
[BOJ 13172 // C++] Σ (0) | 2021.11.08 |