문제 설명
문제는 큰 룸이 있고 거기에 하나의 사각형이 있고, 다음 주어진 크기의 사각형을 기존의 사각형을 최소한으로 움직여서 둘이 겹치치 않 도록 하라는 문제이다.틀린 이유 :
- 마지막에 w, h축을 비교 후 둘다 움직일 경우 최소를 봐야하는데 고려하지 않았다
- 각 각 ans에 대한 최소를 구하려고
```
if (x2 - x1 + w <= W) {
//max(w - x1, 0) 양수가 나오면 그만큼 움직이되 둘중 작은 값을 움직이면된다.
t1 = min(max(w - x1, 0), max(w - W + x2, 0));
}
if (y2 - y11 + h <= H) {
t2 = min(max(h - y11, 0), max(h - (H - y2), 0));
}
- 각 각 ans에 대한 최소를 구하려고
ans = min(t1, t2) 했는데 여기서 t1, t2를 생각 없이0으로 초기화 해버렸다 => 0으로 초기화는 0은 움직일 필요가 없다는 뜻이다 그래서 '0'이 아니라서 inf로 초기화 하는 것이 맞다
풀이 설명 :
각각에 대해서 갈 공간이 있는지 확인후
max(h - y11, 0) or max(h- (H -y2), 0)에서 max를 보면된다
여기서 0이 나오는 것은 움직일 필요가 없다는 뜻
음수가 나오며 그만큼 움직인다는 뜻이다
'코드포스 > div2' 카테고리의 다른 글
A. Find The Array (0) | 2021.08.09 |
---|---|
B. Gregor and the Pawn Game (0) | 2021.08.02 |
A. PizzaForces (3) | 2021.07.31 |
div2 - Cherry (0) | 2021.07.30 |