0
0

AtCoder初心者振り返りメモ ABC335

Last updated at Posted at 2024-01-06

ABC335の回

A-問題

335A.png

最初の発想は、"2023"を"2024"で置換するコーディングでしたが誤りがあり
末尾に '4' を追加する方針に変更しました。

A.py
# 2024/1/6 本番解答
# 入力
S = input()
T = ""
# 末尾を残して、T へ転記する
for i in range(len(S)-1):
    T += S[i]

# 末尾に '4' を追加する
T += '4'

print(T)

B-問題

335B.png

x,y,z の全通りを配列に格納しソートする方針で当初「set」で重複を削除するコードを書いていましたが、WAを記録したので重複削除をコメントアウトしたところ正答になりました。

B.py
# 2024/1/6 本番解答
N = int(input())

# x,y,z の全通りを配列Lへ格納
L = []
for x in range(N+1):
    for y in range(N-x+1):
        for z in range(N-x-y+1):
            if x + y + z <= N:
                w = []
                w.append(x)
                w.append(y)
                w.append(z)
            L.append(w)
# 配列Lをソート
S = sorted(L)

for i in range(len(S)):
    print(*S[i])

C-問題

335C.png

問題通りの動作を実装しましたが、TLEで通りませんでした。時間を作って正答ができるように勉強します。

C.py
# サンプルは、解けるがTLE
N,Q = map(int,input().split())

S = []
T = []
for _ in range(Q):
    s,t = map(str,input().split())
    S.append(s)
    T.append(t)

C = [[0,0]]
for i in range(1,N+1):
    a = [i,0]
    C.append(a)

for i in range(Q):
    if S[i] == '2':
        t = int(T[i])
        print(*C[t])
    elif S[i] == '1':
        U = [[0,0]]
        if T[i] == 'U':
            x = C[1][0]
            y = C[1][1]
            U.append([x,y+1])
            for j in range(1,N):
                U.append(C[j]) 
        elif T[i] == 'R':
            x = C[1][0]
            y = C[1][1]
            U.append([x+1,y])
            for j in range(1,N):
                U.append(C[j]) 
        elif T[i] == 'D':
            x = C[1][0]
            y = C[1][1]
            U.append([x,y-1])
            for j in range(1,N):
                U.append(C[j]) 
        elif T[i] == 'L':
            x = C[1][0]
            y = C[1][1]
            U.append([x-1,y])
            for j in range(1,N):
                U.append(C[j]) 
        C = U
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