問題
- http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0140
- バス停Aからバス停Bまで乗る時に通るバス停の列を答えよ
解法:やるだけ
- 私は普通にif分で簡単な場合などで分岐させて解いた
- しかし分岐が多いので考慮漏れが入りやすい
# -*- coding: utf-8 -*- import sys import os N = int(input()) for i in range(N): a, b = map(int, input().split()) if a < b: lst = [j for j in range(a, b+1)] print(*lst) # a > b else: # easy if a <= 5: lst = list(range(a, b - 1, -1)) elif b <= 5: lst = list(range(a, 10)) + list(range(5, b - 1, -1)) # i.e. 7 -> 6 else: lst = [j for j in range(a, 9 + 1)] + [j for j in range(5, 0, -1)] + list(range(0, b+1)) print(*lst)
他の人の解答
- 他の人の解答を見たらこんなにシンプルに書いてある
for _ in [0]*input(): A = "012345678954321" A += A a, b = raw_input().split() i1 = A.index(a) i2 = A.index(a,i1+1) i3 = A.index(b,i1) if i2<i3: i1=i2 print " ".join(A[i1:i3+1])
indexの第二引数で、どの添え字から探し始めるかを指定できることを知った。