リアルタイムに解けた問題
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)