numbers.sort(key=lambda x : (x*4)[:4], reverse=True)
# 프로그래머스 가장 큰 수
# ['3', '30', '34', '5', '9'] -> ['9', '5', '34', '3', '30'] 글자를 4번 붙여넣은 뒤 첫 자리가 큰 숫자를 앞에 두는 테크닉
numbers.sort(key=lambda x : (x[0], x[1]))
# [(-8, 1), (-7, 1), (2, 3), (-5, 0)] -> [(-8, 1), (-7, 1), (-5, 0), (2, 3)]
numbers = ['9', '5', '34', '3', '30']
answer = ''.join(numbers)
# answer = "9534330"
print(*numbers)
# 9 5 34 3 30
a.insert(1, 5) #1번째 인덱스에 요소 5 추가 [1, 5, 2, 3]
del a[1] # 1번째 인덱스 삭제
a.remove(아이템) #아이템에 해당하는 요소 삭제
del a[a.index("a")]
# a라는 요소의 인덱스를 불러와 해당 인덱스 삭제 -> 결국 a 아이템을 삭제함
a.pop(0) # 0번째 인덱스에 해당하는 요소를 가져온 후 삭제함
a.pop() # 마지막 요소를 취득하고 삭제함 (stack에서 유용하게 사용됨)
s = {}
s.add(1)
s.update([7, 8, 9]) # s = {1, 7, 8, 9}
s.remove(7) # s = {1, 8, 9}
a = input().split('-')
# -를 기준으로 받은 인풋을 나눔
from collections import deque
q = deque()
q.append("a")
while q:
now = q.popleft() #a
import sys, heapq
input = sys.stdin.readline
N = int(input())
schedules = sorted([list(map(int, input().split())) for _ in range(N)])
h = []
for start, end in schedules:
if h and h[0] < start:
heapq.heappop(h)
heapq.heappush(h, end)
print(len(h))
heapq 관련 함수를 사용할 때는 꼭 리스트를 인자로 넣어줘야한다.
이는 백준 수강신청 https://www.acmicpc.net/source/58781927 관련 풀이
from collections import defaultdict
d = defaultdict(list) # 디폴트 value가 빈 리스트로 저장
d = defaultdict(int) # 디폴트 value가 0으로 저장
del a[1]
a
# {2: 'b', 'name': 'pey', 3: [1, 2, 3]} 딕셔너리 a에서 1이란 키가 사라짐.
dic = defaultdict(list)
for departure, arrival in tickets:
dic[departure].append(arrival)
for key in dic.keys():
dic[key].sort()
# print(dic)
# {'ICN': ['ATL', 'SFO'], 'SFO': ['ATL'], 'ATL': ['ICN', 'SFO']})
밑 코드는 여행경로에서 사용한 테크닉 https://school.programmers.co.kr/learn/courses/30/lessons/43164
print(ord("A")) # 65
print(ord("Z")-ord("A")) #25
lst = ['a', 'b', 'cd']
print(''.join(lst)) # abcd
print('/'.join(lst)) #a/b/cd
[False for _ in range(N)]
# [False, False, False, False... ]
[[0 for _ in range(3)] for _ in range(4)]
# [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
[(i, j) for i in range(5) for j in range(5)]
# [(0, 0), (0, 1) ... ]
uf = [i for i in range(7)]
# [0, 1, 2, 3, 4, 5, 6]
def rotate_90(array):
ver, hor = len(array), len(array[0])
new_array = [[array[-j + ver - 1][i] for j in range(ver)] for i in range(hor)]
return new_array
이때 4번 이상 회전하지 않도록 while rotate_cnt < 4: 조건 등을 붙여줘야 한다.
from itertools import combinations, permutations
positions = [(i, j) for i in range(5) for j in range(5)]
combs = list(combinations(positions, 7))
arr = ['A', 'B', 'C']
nPr = permutations(arr, 2)
print(list(nPr))
# 결과 : [('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]
소문난 칠공주 백준 https://www.acmicpc.net/problem/1941 문제에서 사용한 테크닉