[コードテスト]これがコードテストです01.Python文法整理
20352 ワード
これが符号化テストです。
(羅東彬、⌝これは就職のためのコードテスト⌝、韓光メディア、2020年)
01.Python文法整理
01.リスト関連メソッド
02.集合資料型紹介
03.入出力
入力に使用される通常のソースコード
data = list(map(int, input().split()))
スペースで区切られた少量のデータ入力
n,m,k = map(int, input().split())
sysはinput関数が遅いため使用します
import sys
sys.stdin.readline().rstrip()
readline()を入力すると、入力後にエンティティが改行として入力されます.空白文字を削除するにはrstrip()関数を呼び出す必要があります.
answer = 8
print(f"정답은 {answer}입니다.")
=> 정답은 8입니다.
04.主要ライブラリ
組み込み関数
result = sorted([ ('홍길동', 35), ('이순신', 75), ('아무개', 50) ],
key = lambda x: x[1],
reverse = True
)
前に示したようにkey、reverseパラメータを使用できます!itertools:配列、組合せクラスを使用可能
from itertools import permutations
data = ['A', 'B', 'C']
result = list(permutations(data, 3)) # 3개 뽑는 순열
=> [('A','B','C'), ('A','C','B')...]
data = ['A', 'B', 'C']
result = list(combinations(data, 2)) # 2개 뽑는 조합
=> [('A','B'), ('A','C'), ('B','C')]
heapq:最小hipを構成します。
heapq.heappush()heappush()heappush()heappush()heappush()heappush()heappush()heappush()heappush()heappush()heappush
heapq.heapppop()heapppop()heapppop()heapppop()heapppop()heapppop()heapppop()heapppop
# 힙정렬(최소힙)
import heapq
def heapsort(iterable):
h = []
result = []
# 모든 원소 차례대로 힙에 삽입
for value in iterable:
heapq.heappush(h, value)
# 힙에 삽입된 모든 원소를 차례대로 꺼내어 담기
for i in range(len(h)):
result.append(heapq.heappop(h))
return result
# 최대힙 => 원소의 부호를 임시로 반대로!
import heapq
def heapsort(iterable):
h = []
result = []
for value in iterable:
heapq.heappush(h, -value)
# 힙에 삽입된 모든 원소를 차례대로 꺼내어 담기
for i in range(len(h)):
result.append(-heapq.heappop(h))
return result
bisect:バイナリナビゲーション、整列配列で要素を検索する必要がある場合!
対left(a,x):リストaにデータxを挿入する最も左側のインデックスを検索し、ソート順を維持します.
対分right(a,x):リストaにデータxを挿入してソート順を維持する右端インデックスを検索します.
from bisect import bisect_left, bisect_right
a = [1,2,4,4,8]
x = 4
print(bisect_left(a,x))
print(bisect_right(a,x))
=> 2
=> 4
「ソート・リスト」から「値が特定の範囲に属する要素数」を求めるfrom bisect import bisect_left, bisect_right
# 값이 [left_value, right_value]인 데이터의 개수를 반환
def count_by_range(a, left_value, right_value):
right_index = bisect_right(a, right_value)
left_index = bisect_left(a, left_value)
return right_index - left_index
a = [1,2,3,3,3,3,4,4,8,9]
# 값이 4인 데이터 개수
print(count_by_range(a,4,4))
# 값이 [-1, 3] 범위에 있는 데이터 개수
print(count_by_range(a,-1,3))
=> 2
=> 6
collections: deque, Counter
リスト資料型はappendで、popはすべて“最も後ろの要素”を標準にします!
連続してリストされたデータの先頭と末尾にデータを挿入および削除するのに適しています.
スタックまたはキューのすべての機能が含まれます.
Popleft():最初の要素を削除
pop():最後の要素を削除
appendleft(x):最初のインデックスに要素xを挿入
append():最後のインデックスに要素を挿入
from collections import deque
data = deque([2,3,4])
data.appendleft(1)
data.append(5)
print(data)
print(list(data))
=> deque([1,2,3,4,5])
=> [1,2,3,4,5]
from collections import Counter
counter = Counter(['red', 'blue', 'red', 'green', 'blue', 'blue'])
print(counter['blue'])
print(counter['green'])
print(dict(counter))
=> 3
=> 1
=> {'red': 2, 'blue': 3, 'green': 1}
math
import math
print(math.factorial(5))
=> 120
import math
print(math.sqrt(7))
import math
print(math.pi)
print(math.e)
=> 3.1415925
=> 2.7182818
Reference
この問題について([コードテスト]これがコードテストです01.Python文法整理), 我々は、より多くの情報をここで見つけました https://velog.io/@ausrn731/코딩테스트-이것이-코딩테스트다.-01.-파이썬-문법-정리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol