0
0

なかなか難しかったですね。。。

b = input()
n = int(input())
#2位の当選リスト
c = ['1' + str(i) + b[-4:] for i in range(10) if '1' + str(i) + b[-4:] != b ]
#3位の当選リスト
d = []
for i in range(100):
    if i < 10:
        d.append('10' + str(i) + b[-3:])
    elif i > 10:
        d.append('1' + str(i) + b[-3:])

#3位のリストから1等や2等にあるものを抜く
for i in d:
    if i == b:
        d.remove(i)
    for j in c:
        if i == j:
            d.remove(i)

flag = False
#宝くじ
for _ in range(n):
    cur_num = input()
    
    if cur_num == b:
        print('first')
        flag = True
        break
    elif cur_num == str(int(b)+1) or cur_num == str(int(b)-1):
        print('adjacent')
        flag = True
        break
    
    for i in c:
        if cur_num == i:
            print('second')
            flag = True
            break
    
    for i in d:
        if cur_num == i:
            print('third')
            flag = True
            break
    
    if flag == False:
        print('blank')

あかんかったです。
タイムアップしてしまったので、
答えを見ると言われてみればそうだ===と思ってしまいました。
なるほど。。。まだまだです。

python以外だと、下4桁が一致しているかどうかは10000で割った余りが同じになればOK
下3桁は1000ですね。
余りの性質をよくわかっていなかったです。。。

a = input()
n = int(input())

for i in range(n):
    b = input()

    if a == b:
        print("first")
    # 絶対値の差が1だったらadjacent
    elif abs(int(a) - int(b)) == 1:
        print("adjacent")
    # 2位の条件というのはそもそも3番目から下が同じになればいいので
    # 文字列で比較すればよかった
    elif a[2:] == b[2:]:
        print("second")
    # 3位の条件というのはそもそも4番目から下が同じになればいいので
    # 文字列で比較すればよかった
    elif a[3:] == b[3:]:
        print("third")
    else:
        print("blank")

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0