[문제]
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRDL1aeugDFAUo
[풀이]
1) 사용자는 2명, 충전소는 여러 좌표에 위치해 있다.
2) 각 사용자는 주어진 이동 방향에 따라 이동한다.
3) 맨해튼 거리 공식 ( 좌표 A, B가 있을 때, |A.x - B.x| + |A.y - B.y| 가 충전소의 충전범위 내에 있다면 충전을 한다. )
4) 두 명이 동시에 한 충전소에서 충전을 하게 될 경우 접속한 사용자의 수만큼 균등하게 충전이 된다.
5) 두 명의 충전한 충전량의 최대값을 구하는 것이기 때문에 균등하게 나누지 않고 한 명이 모두 충전하는 것으로 계산해야 한다.
6) 각 사용자는 지도의 양 끝에서 출발한다. => 이동 방향에 따라서 이동하면서 충전소의 충전 범위 내에 들어가는지 확인한다.
7) 한 충전소에 여러 번 충전되는 것을 방지하기 위해 visited 배열을 사용
* chk[9][2] => 사용자는 2명 / 충전소는 최대 9개
* userMove[2][101] => 사용자는 2명 / 최대 100시간동안 움직임
* charge() => 각 충전소에서 사용자들이 충전한 최대 충전량을 반환한다.
* moveUsers() => 사용자들을 이동시킨다.
* 유의할 점
x와 y좌표를 평면 좌표로 생각해야 한다. (상 -> y-- / 좌 -> x++ ...)
'SWEA > 삼성SW역량테스트 C++' 카테고리의 다른 글
[SWEA] 핀볼게임 (0) | 2019.07.31 |
---|---|
[SWEA] 디저트가게 (0) | 2019.07.29 |
[SWEA] 탈주범 검거 (0) | 2019.07.29 |
[SWEA] 홈 방범 서비스 (0) | 2019.07.29 |
[SWEA] 등산로 조성 (0) | 2019.07.28 |