※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 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

+ Recent posts