본문 바로가기
코드포스/div2

B. Two Tables

by kcj3054 2021. 8. 2.
  • 문제 설명
    문제는 큰 룸이 있고 거기에 하나의 사각형이 있고, 다음 주어진 크기의 사각형을 기존의 사각형을 최소한으로 움직여서 둘이 겹치치 않 도록 하라는 문제이다.

  • 틀린 이유 :

      1. 마지막에 w, h축을 비교 후 둘다 움직일 경우 최소를 봐야하는데 고려하지 않았다
      1. 각 각 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 = 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