問題はこちら
4完
A
最後の一文字を削除し、4に変更する
S = input() print(S[:(len(S)-1)] + "4")
B
全探索し、ソート後出力
N = int(input()) list_result = [] for a in range(0,22): for b in range(0,22): for c in range(0,22): if a+b+c <= N: list_result.append(str(a) + ' ' + str(b) + ' ' + str(c)) # sort print('\n'.join(map(str, list_result)))
C
頭の位置履歴がわかれば胴体の位置を計算できる。
パーツiのt回移動後の位置をC(i,t)とすると、C(i+1,t+1) = C(i,t)= C(i-1,t-1)=... = C(1,t-i+1)。
t-i+1 が負=負の回数移動ととらえ、辞書にあらかじめ追加しておく。
import copy N, Q = list(map(int, input().split())) dict_coor_head = {i: [-i+1, 0] for i in range(-N+1, 1)} coor_head = [1,0] # 頭の最初の位置 t = 0 # クエリ1の累積回数 # query for i in range(Q): x, y = input().split() # if int(x) == 1: t += 1 if y == "R": coor_head[0] += 1 if y == "L": coor_head[0] -= 1 if y == "U": coor_head[1] += 1 if y == "D": coor_head[1] -= 1 # add coor_head dict_coor_head[t] = copy.deepcopy(coor_head) # if int(x) == 2: y = int(y) print(*dict_coor_head[t-y+1])
D
1~N2を渦巻き状に配置。その後、N2をTに置き換える。
N = int(input()) def print_number_grid(N): grid = [[0 for _ in range(N)] for _ in range(N)] center = N // 2 current_number = 1 for layer in range(center + 1): for i in range(layer, N - layer): grid[layer][i] = current_number current_number += 1 for i in range(layer + 1, N - layer): grid[i][N - layer - 1] = current_number current_number += 1 for i in range(layer + 1, N - layer): grid[N - layer - 1][N - i - 1] = current_number current_number += 1 for i in range(layer + 1, N - layer - 1): grid[N - i - 1][layer] = current_number current_number += 1 # N^2の数値をTをして出力 grid[N//2][N//2] = "T" # 出力 for row in grid: print(' '.join(map(str, row))) # 数字を配置したグリッドを出力 print_number_grid(N)
E
F