610. Triangle Judgement (問題レベル: Easy)要課金
今日の問題はこれ。
3辺の長さが与えられた時、三角形が成立するかどうかを判定するという問題。
多段階の条件分岐が必要な難問かと思ったが、or
やand
でまとめればシンプルな問題。
SQLはベン図を思い浮かべよという教えを見たことがあったがまさにそのとおり。
こちらが最初に考えた回答。Solutionに提示してある回答とほぼ同じだった。
select x, y, z,
case when (x < y+z) and (y < x+z) and (z < x+y) then 'Yes'
else 'No' end as triangle
from triangle
Discussを覗くと、一番Voteを得ていた回答はif(条件,真,偽)
を使った回答。
しかし、何度実行してもacceptされない。
調べたところMS SQL Server
ではif(条件,真,偽)
は使用できずに
iif(条件,真,偽)
を使う必要があるということ。
(もちろんif 条件 begin 真 end else bein 偽 end
も使える)
select x, y, z,
iif(x < y+z and y < x+z and z < x+y,'Yes', 'No') as triangle
from triangle
これならば通った。
基本は汎用性の高いcase when
で良いが、iif文
も短く記載できるので覚えておこう。
- LeetCodeの問題は、MS SQL Serverで解いています。