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 Beginner Contest 284 A〜C問題をPythonで解いてみました

Last updated at Posted at 2023-01-08

ABC284(AtCoder Beginners Contest 284)
A〜C問題をPythonで解いてみました。

  • コードは雑めです。ゆるしてー
  • 競技プログラミングの勉強一切したこと無いので、テクニックは知らないよ。ごめんねー

A問題(diff=10)

提出コード

n = int(input())
s = []
for i in range(n):
  s.append(input())
 
for i in range(n-1,-1,-1):
  print(s[i])
  • n個分文字列を受け取って、逆順でprintするだけの問題です
  • range()を工夫すれば簡単に解ける問題ですね

B問題(diff=14)

提出コード

t = int(input())
for ti in range(t):
  tn = int(input())
  tests = list(map(int,input().split()))
  odd_count = 0
  for tnum in tests:
    if (tnum%2)==1:
      odd_count += 1
  print(odd_count)
  • t個分テスト文字列を受け取って、奇数をカウントしてprintするだけの問題です
  • 2重ループ使ってます

C問題(diff=193)

提出コード

n, m = map(int,input().split())

graph_vertices = [False]*n
graph_edges = [[False]*n for i in range(n)]

for i in range(m):
    e1, e2 = map(int,input().split())
    e1 -= 1
    e2 -= 1
    graph_edges[e1][e2] = True
    graph_edges[e2][e1] = True

def depthFirstSearch(i):
    graph_vertices[i] = True
    for i2 in range(n):
        if graph_edges[i][i2] and not graph_vertices[i2]:
            depthFirstSearch(i2)

count = 0
for i in range(n):
    if graph_vertices[i] == False:
        depthFirstSearch(i)
        count += 1

print(count)

  • 深さ優先探索です。
  • 学生の頃に作ったすごろくゲームで実装したの懐かしい。StackOverflowしたのは良い思い出です。
  • (追記)私のようにゴリゴリ実装しなくてもライブラリ呼び出すだけで解けるそうなので、「python 連結成分」などで検索されると良いと思います。

感想

C問題ちょっと難しかったかな?
でもこの問題でdiff200行かないんですね。難しくなりましたねぇ。

0
0
2

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?