0
0

ABC365参加記録 by Python

Posted at

リアルタイムに解けた問題

A - Leap Year

問題文

1583以上2023以下の整数$Y$が与えられます。
西暦$Y$年の日数を求めてください。
なお、制約の範囲内では西暦$Y$年の日数は以下の通りです。

  • $Y$が4の倍数でない年は365日
  • $Y$が4の倍数で、かつ100の倍数でない年は366日
  • $Y$が100の倍数で、かつ400の倍数でない年は365日
  • $Y$が400の倍数である年は366日

制約

  • $Y$は1583以上2023以下の整数

アルゴリズム

制約の通りにif文を作成。

ソースコード

Y = int(input())

if Y % 400 == 0:
  print(366)
elif Y % 100 == 0 and Y % 400 != 0:
  print(365)
elif Y % 4 == 0 and Y % 100 != 0:
  print(366)
elif Y % 4 != 0:
  print(365)

問題名

問題文

長さ$N$の整数列$A = (A_{1}, ....A_{N})$が与えられます。ここで、$A_{1}, A_{2},....A_{N}$は相異なります。
$A$の中で二番目に大きい要素は$A$の何番目の要素でしょうか。

制約

  • $2 \leq N \leq 100$
  • $1 \leq A_{i} \leq 10^{9}$
  • $A_{1}, A_{2},....A_{N}$は相異なる
  • 入力される数値は全て整数

アルゴリズム

for文とif文を組み合わせて地道に数える。

ソースコード

N = int(input())

A = list(map(int, input().split()))

first = -1
first_num = -1
second = -1
second_num = -1

for i in range(N):
  if first == -1:
    first = A[i]
    first_num = i
  elif A[i] < first and second == -1:
    second = A[i]
    second_num = i
  elif A[i] > first:
    second = first
    second_num = first_num
    first = A[i]
    first_num = i
  elif A[i] < first and A[i] > second:
    second = A[i]
    second_num = i
  else:
    continue

print(second_num + 1)


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