【AtCoder】ABC327解説(Python)

HHKBプログラミングコンテスト2023(AtCoder Beginner Contest 327)の解説記事です。

目次

ABC327 A – ab

問題

問題文の要約は以下の通りです。

問題の要約

英小文字からなる長さ \(N\) の文字列 \(S\) が与えられたとき、 \(S\) の中でabが隣接する箇所があればYesを、なければNoを出力せよ。ただし、abの順序は問わない。

制約

・\(2 \le N \le 100\)
・\(S\) は英小文字からなる長さ \(N\) の文字列

入力

\(N\)
\(S\)

出力

\(S\) の中で a と b が隣接する箇所があれば Yes を、なければ No を出力せよ。

解説

\(S\) にabまたはbaが含まれているか判定する。

解説

まず入力 \(N\) をint型、\(S\) を文字列として受け取ります。

# 入力
N=int(input())
S=input()

\(S\) にabまたはbaが含まれているか判定し、含まれていれば Yes を、そうでなければ No を出力します。

# 出力
print('Yes' if 'ab' in S or 'ba' in S else 'No')

解答

# 入力
N=int(input())
S=input()

# 出力
print('Yes' if 'ab' in S or 'ba' in S else 'No')

ABC327 B – A^A

問題

問題文の要約は以下の通りです。

問題の要約

整数 \(B\) が与えられたとき、 \(A^A = B\) となる、正の整数 \(A\) が存在するならばその値を、存在しないならば-1を出力せよ。

制約

・\(1 \le B \le 10^{18}\)
・\(B\) は整数

入力

\(B\)

出力

\(A^A = B\) となる、正の整数 \(A\) が存在するならばその値を、存在しないならば-1を出力せよ。

解説

条件を満たす範囲で \(A\) を全探索する。

解説

\(1 \le B \le 10^{18}\) を満たす \(A\) は \(1 \le A \le 15\) になります。
正確な値を計算せずに \(1 \le A \le 20\) の範囲で計算しても問題ありません。

まず入力 \(B\) をint型として受け取ります。

# 入力
B=int(input())

\(1 \le A \le 20\) の範囲で \(A^A = B\) となるか判定します。
\(A^A = B\) を満たすならばその値を、存在しないならば-1を出力します。

# Aを1~20の範囲で全探索する
for A in range(1,20):
  # 存在した場合はAを出力
  if A**A ==B:
    print(A)
    exit()
# 存在しない場合
print(-1)

解答

# 入力
B=int(input())

# Aを1~20の範囲で全探索する
for A in range(1,20):
  # 存在した場合はAを出力
  if A**A ==B:
    print(A)
    exit()
# 存在しない場合
print(-1)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次