yukicoder #360: 増加門松列
問題
No.360 増加門松列 - yukicoder
任意の連続する3数が門松列であり、右側の方が大きい時それを増加門松列という。
7つの数字が与えられるので、並べ替えて増加門松列が作れるか答えよ、という問題
考えたこと
7要素程度なら全部の順列についてチェックすれば良い。
難易度更新されたけれど、359よりもこっちの問題が断然簡単だと思った。
コード
pythonでnext_permutation的なものあるかな?と調べつつ実装。
冷静に考えて前にも調べたことある気がする。
import itertools def isKadomatsu(A): if A[0]==A[1] or A[1]==A[2] or A[0]==A[2]: return False elif A[0]<A[1] and A[1]>A[2]: return True elif A[0]>A[1] and A[1]<A[2]: return True return False X=map(int,raw_input().split()) for line in itertools.permutations(X): ok=True for i in range(5): B=[line[i],line[i+1],line[i+2]] if( isKadomatsu(B) and B[0]<B[2] ): continue else: ok=False break if ok: print "YES" exit() print "NO"