0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

毎日AtCoder~B埋め~

Last updated at Posted at 2023-09-19
ABC320 25min 解答参照
s = input()
count = 1

# 外側のループ (i)
for i in range(len(s) - 1):
    # 内側のループ (j)
    for j in range(i + 1, len(s)):
        # 部分文字列を取得
        sub_str = s[i:j+1]

        # 部分文字列が回文であるかチェック
        if sub_str == sub_str[::-1]:
            count = max(count, j - i + 1)

# 最長の回文部分文字列の長さを表示
print(count)
  1. 前から順に部分文字列を取得
  2. 部分文字列が回文であるかをチェック
  3. iは回文の開始地点、jは回文の終了地点を表している。j-i+1で回文の長さがわかる
  4. max関数を使うことで、それまでのcountと現在の回文の長さを比較してより長いほうをcountに保持できる
ABC319 53min 自力
N=int(input())
j_list = []
ans_list=[1]#0を割ったときの結果を先に入れておく
#10以下の約数リストの作成
for i in range(1,10):
  if N%i == 0:
    j_list.append(i)
#0を除く1~Nについて
for i in range(1,N+1):
  for j in j_list:
    L=i*j
    if L%N == 0:
      ans_list.append(j)
      break
 #if内条件を満たさなかった場合
  else:
      ans_list.append('-')
print("".join(map(str, ans_list)))
ABC318 9/20 解説参照 50min
n=int(input())
num_set = set()
for _ in range(n):
  x1,x2,y1,y2 = map(int,input().split())
  for a in range(x1,x2+1):
    for b in range(y1,y2+1):
      num=str(a)+str(b)
      num_set.add(int(num))
print(len(num_set))

最初はこれでやろうとした。
三重ループになる点、(1,120)と(11,20)が同じとみなされてしまう点などが問題となり断念。

N = int(input())
ss = []
for _ in range(N):
    A, B, C, D = map(int, input().split())
    ss.append((A, B, C, D))
c = set()
for s in ss:
    for x in range(s[0], s[1]):
        for y in range(s[2], s[3]):
            c.add((x, y))
S = len(c)
print(S)

これならいけた。数字として見るなんてめんどくさいことせずにタプルとして扱えばよかった。

N = int(input())
sheets = []

for _ in range(N):
    A, B, C, D = map(int, input().split())
    sheets.append((A, B, C, D))


grid = [[0] * 101 for _ in range(101)]


for A, B, C, D in sheets:
    for x in range(A, B):
        for y in range(C, D):
            grid[x][y] = 1


total_area = sum(sum(row) for row in grid)

シートを作ってやるならこのやり方も。

ABC317 20min 自力
n=int(input())
num=list(map(int,input().split()))
num.sort()

for i in range(num[0],num[0]+n+1):
  if not i in num:
    print(i)
    exit()
print(num[0])
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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?