[プログラマー]無傷の長方形(JAVA/Java)


質問リンク

に答える


これは初めて見た新鮮な問題だ.どれだけの領域が使えないかをどう判断すればいいのか悩みましたが、座標上のグラフで考えれば簡単に解けます.

上図のように左右を反転してグラフのように見えます.
  • xが0の場合は0、
  • 1の場合、1.5->を捨てると1・
  • 2の場合は3
  • 3時4.5->捨てれば4
  • ...
  • そう考えると、1つずつ、さらに2倍になると、領域の幅が見えてきます!
    コードで次のように記述します.解決後は簡単すぎて気を落とす問題で、

    コード#コード#

    public class Solution {
    
    
        public long solution(long w, long h) {
            long answer = 0;
    
            for (int i = 0; i < w; i++) {
    //            answer += h / w * i;  // 이렇게하면 틀림
                answer += h * i / w;
            }
    
            return answer * 2;
        }
    
    }

    整理する


    난이도 : LEVEL 2

    🤦メモ

  • まだ解答が得られておらず,解関数を長時間受けたwとhのみが通過する.サンプルコード(?)上もintなので、なぜか分かりません.ㅠㅠ
  • コメントサイト


    いいえ