Atcoder ABC236 振り返り
バーチャルで参加しました.
A - chukodai【AC】
文字列をlist関数に入れると一文字ずつ要素になったリストが返ってきます.また,a,b = b,aとすると簡単に値を入れ替えることができます.
S = list(input()) a, b = map(int, input().split()) S[a-1], S[b-1] = S[b-1], S[a-1] print("".join(S))
B - Who is missing?【AC】
ソートする事で同じ値は連続して並ぶようになります.それが3個しかなかったらそれを出力します.
N = int(input()) A = [int(i) for i in input().split()] A = sorted(A) i = 0 ok = True for n in range(1, N+1): num = 0 while True: if i < len(A) and A[i] == n: num += 1 else: if num == 3: ok = False break break i += 1 if not ok: break print(n)
C - Route Map【AC】
止まる駅があった時のみjを+1するようにすれば良いです.
N, M = map(int, input().split()) S = [i for i in input().split()] T = [i for i in input().split()] j = 0 ans = [] for i in range(N): if S[i] == T[j]: j += 1 ans.append("Yes") else: ans.append("No") for i in ans: print(i)
D - Dance【解説AC】
Nが8しかないことから全探索でいけそうだということは感じていたがそれ以上は分からなかった.全探索にしろどう実装すれば良いのか分からなかったが,他人のコードを見ることによってDFSで実装出来ると言うことを知った.DFSは苦手意識があり無意識的に考慮の外に追いやっているため,積極的に意識する.
N= int(input()) A = [] for i in range(2*N-1): A.append([int(i) for i in input().split()]) ans = [] def dfs(member, fun): if member == []: ans.append(fun) else: p1 = member.pop(0) for i in range(len(member)): p2 = member[i] dfs(member[:i] + member[i+1:], fun^A[p1][p2-p1-1]) dfs(list(range(2*N)),0) print(max(ans))