11728.配列の組合せ


質問する


合併白駿11728号案

に答える


多分、ほとんどの人が初めてスポットに触れた時は2つの並びを合わせて始めたのではないでしょうか.
n, m = map(int, input().split())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
c = []

ai, bi = 0, 0
while True:
    if a[ai] <= b[bi]:
        c.append(a[ai])
        ai += 1
    else:
        c.append(b[bi])
        bi += 1
    if ai == len(a): break
    if bi == len(b): break
if ai < len(a): c += a[ai:]
if bi < len(b): c += b[bi:]

for x in c: print(x, end=' ')
最初はこのようにinput()関数を書き、繰り返し文内で出力します.
n, m = map(int, sys.stdin.readline().split())
a = list(map(int, sys.stdin.readline().split()))
b = list(map(int, sys.stdin.readline().split()))
c = []

ai, bi = 0, 0
while True:
    if a[ai] <= b[bi]:
        c.append(a[ai])
        ai += 1
    else:
        c.append(b[bi])
        bi += 1
    if ai == len(a): break
    if bi == len(b): break
if ai < len(a): c += a[ai:]
if bi < len(b): c += b[bi:]

res = ''
for x in c: res += str(x) + ' '
print(res)
これにより、sys.stdin.readline()が入力され、変数resに保存され、出力される.

時間もメモリも減りました!