- Python環境構築
【Mac】 https://skume.net/entry/2022/01/19/060000
【Windows】 https://prog-8.com/docs/python-env-win
時間 | 内容 | 補足 |
---|---|---|
14:00~14:20 | 競プロとは?(LT) | |
14:30~15:20 | Python文法基礎講座 | |
15:30~21:00 | 過去問演習 | cozy_sauna&くまがメンター相談部屋に待機 |
21:00~22:40 | コンテスト参加 | AtCoder |
22:40~23:30 | コンテストの感想戦・問題解説 |
- プログラミングで解答するクイズ大会!
- 問題を解くまでの流れ
- 問題を確認し解法を考える
- コードを書く
- 問題例を試して、正解するか確認する
- コードを提出してACになると正解!
入力受け取り
関数 | 内容 |
---|---|
input() | 入力を受け取る |
split() | 入力を空白区切りにする |
int() | 文字列型を数字に変える |
map() | 複数の要素に同じ関数を使う |
S = input()
S = int(input())
A, B = input().split()
A, B = map(int, input().split())
A = list(map(int, input().split()))
A = [list(map(int, input().split())) for _ in range(3)]
Python型一覧
型 | 内容 | 例 |
---|---|---|
str | 文字列型 | a = "ABC" |
int | 整数型 | a = 1 |
float | 浮動小数点型 | a = 1.23 |
bool | ブール型 | a = True; b = False |
list | リスト型 | a = [1, 2, 3] |
set | セット型 | a = {1, 2, 3} |
tuple | タプル型 | a = (1, 2, 3) |
dict | 辞書型 | a = {"apple": 1, "banana": 2}; a["apple"] -> 1 |
Python関数一覧
関数 | 内容 | 例 |
---|---|---|
max() | 最大値を取得 | max(1, 4, 2) -> 4 |
min() | 最小値を取得 | min(1, 4, 2) -> 1 |
sun() | 全ての要素の和を取得 | sum([1, 4, 2]) -> 7 |
abs() | 絶対値を取得 | abs(-2) -> 2 |
sorted() | 小さい順にソートする | sorted([1, 4, 2) -> [1, 2, 4] |
print() | 表示する | print('apple') -> 'apple' |
reversed() | 逆順にする | reversed([1, 4, 2]) -> [2, 4, 1] |
join() | 文字列を結合する | ''.join(['a', 'b', 'c']) -> "abc" |
list() | リスト | [1, 3, 4, 1]重複あり |
append() | リストに要素を入れる | A = []; A.append(1) -> A = [1] |
set() | セットを生成 | {1, 3, 4}重複なし |
add() | セットに要素を入れる | A = {}; A.add(1) -> A = {1} |
len() | リスト、セットの長さを取得 | len([1, 2, 3]) -> 3 |
dict() | 辞書を生成 | {"apple": 2, "banana": 1} {key: value} |
range() | 数字のリスト(みたいなもの)を生成 | range(4) -> [0, 1, 2, 3] |
ord() | 文字のUnicode値を取得 | ord('a') -> 97 |
chr() | Unicode値から文字を取得取得 | chr(97) -> 'a' |
exit() | プログラムを終了する | |
type() | 型を表示する | type(1) -> int, type("apple") -> str |
Python頻出処理
処理 | 内容 | 例 |
---|---|---|
+ | 足し算 | 4 + 3 -> 7 |
- | 引き算 | 4 - 3 -> -1 |
* | 掛け算 | 4 * 3 -> 12 |
/ | 割り算 | 4 / 3 -> 1.33 |
// | 割り算**(切り下げ)** | 4 // 3 -> 1 |
% | あまり | 4 % 3 -> 1 |
x+=1 | 1をxに足す | x = 3, x += 1 -> 4 |
x-=1 | 1をxから引く | x = 3, x -= 1 -> 2 |
A[s] | 配列の前からs番目を取得 | [1, 7, 4, 5, 9][1] -> 7 |
A[-s] | 配列の後ろからs番目を取得 | [1, 7, 4, 5, 9][-1] -> 9 |
A[s:g] | Aはlist、s文字目からt文字目を取得 | [1, 7, 4, 5, 9][1:3] -> [7, 4] |
[要素] * N | N個同じ要素が入ったlistを作る | [0] * 3 -> [0, 0, 0] |
[[要素] * W for _ in range(H)] | H*Wの二次元配列を作る | [[0] * 3 for _ in range(2)] -> [[0, 0, 0],[0,0,0]] |
True, False | bool値(大文字注意) | True, False |
and | 2つの条件を満たす | if(条件1)and(条件2): |
or | 2つの条件のどちらか満たす | if(条件1)or(条件2): |
if elif else | if文, elifに注意 | if(条件1)elif(条件2)else: |
in | listやsetに要素が含まれるか | 2 in [1, 2, 3] -> True |
for number in range(3):
print(number)
#出力
0
1
2
for alp in "abc":
print(alp)
#出力
'a'
'b'
'c'
Python実行コマンド
a.py という名前のファイルを実行(コマンドライン上で)python3 a.py
入力受付モードになるので、入力例を試す
- EASY NORMAL HARD EXPERT の四種類の問題を用意しました【PythonとC++の解説コード付き】
- AtCoderProblems【解いた問題を管理できるサイト】
EASY 🔥
問題番号 | 問題リンク | 解説 | 解説 |
---|---|---|---|
180_a | 問題 | Python | C++ |
178_a | 問題 | Python | C++ |
176_a | 問題 | Python | C++ |
174_a | 問題 | Python | C++ |
172_a | 問題 | Python | C++ |
170_a | 問題 | Python | C++ |
053_a | 問題 | Python | C++ |
101_a | 問題 | Python | C++ |
207_a | 問題 | Python | C++ |
201_a | 問題 | Python | C++ |
266_a | 問題 | Python | C++ |
264_a | 問題 | Python | C++ |
218_a | 問題 | Python | C++ |
179_a | 問題 | Python | C++ |
214_b | 問題 | Python | C++ |
222_b | 問題 | Python | C++ |
204_b | 問題 | Python | C++ |
052_a | 問題 | Python | C++ |
151_a | 問題 | Python | C++ |
205_a | 問題 | Python | C++ |
NORMAL 🔥🔥
問題番号 | 問題リンク | 解説 | 解説 |
---|---|---|---|
187_a | 問題 | Python | C++ |
261_a | 問題 | Python | C++ |
219_b | 問題 | Python | C++ |
213_b | 問題 | Python | C++ |
201_b | 問題 | Python | C++ |
218_b | 問題 | Python | C++ |
101_b | 問題 | Python | C++ |
086_b | 問題 | Python | C++ |
062_b | 問題 | Python | C++ |
049_b | 問題 | Python | C++ |
047_b | 問題 | Python | C++ |
089_b | 問題 | Python | C++ |
HARD 🔥🔥🔥
問題番号 | 問題リンク | 解説 | 解説 |
---|---|---|---|
182_b | 問題 | Python | C++ |
050_b | 問題 | Python | C++ |
098_b | 問題 | Python | C++ |
102_b | 問題 | Python | C++ |
261_b | 問題 | Python | C++ |
265_b | 問題 | Python | C++ |
262_b | 問題 | Python | C++ |
EXPERT 🔥🔥🔥🔥🔥
問題番号 | 問題リンク | 解説 | 解説 |
---|---|---|---|
043_c | 問題 | Python | C++ |
060_c | 問題 | Python | C++ |
048_b | 問題 | Python | C++ |
109_c | 問題 | Python | C++ |
118_c | 問題 | Python | C++ |
103_c | 問題 | Python | C++ |
240_c | 問題 | Python | C++ |
117_c | 問題 | Python | C++ |
101_c | 問題 | Python | C++ |
061_c | 問題 | Python | C++ |
106_c | 問題 | Python | C++ |
066_c | 問題 | Python | C++ |
064_c | 問題 | Python | C++ |
- 21:00までにやるべきこと
- アカウント作成(https://atcoder.jp/?lang=ja)
- 参加登録ABC267
- 21:00 ~
- いざ本番!
- 実際に問題を解きながら解説します!
- 分からない時はいつでも質問してください!
- アルゴリズムを勉強してみよう!
- Pythonライブラリ
おすすめアルゴリズム一覧
アルゴリズム |
---|
貪欲法 |
累積和 |
二分探索 |
dp(動的計画法) |
素数判定 |
約数列挙 |
BFS(幅優先探索) |
DFS(深さ優先探索) |
UnionFind |
尺取法 |