Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで4つの整数(辺)が長方形を形成できるかどうかを判定する方法

問題概要

4つの辺の長さが与えられたとき、それらの辺が長方形を形成できるかどうかを判定します。

例えば、入力が sides = [10, 30, 30, 10] の場合、10と30がそれぞれ2本ずつペアになっているため、出力は True になります。

解法のアプローチ

この問題は以下の手順で解くことができます。

  • 4つの辺すべてが同じ値である場合(正方形も長方形の一種)、True を返す
  • sides[0] と sides[1] が等しく、かつ sides[2] と sides[3] が等しい場合、True を返す
  • sides[0] と sides[3] が等しく、かつ sides[2] と sides[1] が等しい場合、True を返す
  • sides[0] と sides[2] が等しく、かつ sides[3] と sides[1] が等しい場合、True を返す
  • 上記のいずれにも当てはまらない場合、False を返す

実装例

以下のコードで具体的な実装を確認してみましょう。

def solve(sides):
   if sides[0] == sides[1] == sides[2] == sides[3]:
      return True
   elif sides[0] == sides[1] and sides[2] == sides[3]:
      return True
   elif sides[0] == sides[3] and sides[2] == sides[1]:
      return True
   elif sides[0] == sides[2] and sides[3] == sides[1]:
      return True
   return False

sides = [10, 30, 30, 10]
print(solve(sides))

入力

[10, 30, 30, 10]

出力

True

コードのポイント

長方形を形成するためには、4つの辺が2組のペアになっていなければなりません。すべての辺が同じ場合は正方形となり、これも長方形の一種として扱います。条件分岐では、リスト内の異なるインデックス同士の組み合わせをすべて確認することで、どのような順序で辺が与えられていても正しく判定できるようにしています。

  1. Pythonで点が長方形の内部にあるかどうかを判定する方法

    長方形は、左下の頂点(bottom-left)と右上の頂点(top-right)という2つの座標点で表すことができます。本記事では、与えられた点 (x, y) がその長方形の内部に存在するかどうかをPythonで判定する方法を解説します。例えば、左下の頂点が (1, 1)、右上の頂点が (8, 5) である長方形に対して、点 (5, 4) が含まれるかどうかを調べると、出力は True になります。解決のための手順solve() 関数を定義します。引数として bl(左下の頂点)、tr(右上の頂点)、p(判定対象の点)を受け取ります。点 p の x 座標が bl の x 座標より大きく、かつ t

  2. 【Python】数値を各桁のリストに変換する方法を解説

    Pythonでデータ処理を行っていると、ある数値を「各桁の数字が要素となったリスト」に変換したい場面に出会うことがあります。例えば、1342という数値を [1, 3, 4, 2] のようなリストにするケースです。この記事では、その実現方法として代表的な2つのアプローチをサンプルコード付きで紹介します。 方法1:リスト内包表記を使う まずstr関数で数値を文字列に変換し、その各文字に対してint関数を適用して整数に戻します。最後に、その結果をリストとしてまとめます。コードが簡潔で読みやすいため、最もよく使われる書き方です。 サンプルコード numA = 1342 # 対象の数値 print(