Programming language
![[python] F-String](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FRNfys%2FbtqIZk2cpZG%2FAAAAAAAAAAAAAAAAAAAAADlaCPKdfi89Fu3LCwELYVogvgVtx2xQBizVplMKgbcS%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3DKBOzjj8MkhcLC3EgxEHi3nYajh4%253D)
[python] F-String
📗 F-String 코딩을 하다보면 당연히 변수와 상수(?)를 같이 써야할 때가 온다. 기존에는 이렇게 다양하게 표현했다. name = 'deok' language = 'python' print('hi, my name is ' + name + '! ' + 'I like ' + language + '.') print('hi, my name is {}! I like {}.'.format(name, language)) print('hi, my name is %s! I like %s.' % (name, language)) ## hi, my name is deok! I like python. 보다시피 가독성이 매우 안좋다. 여기서 변수가 더 많아지면... 😂 이와 같은 문제를 해결하기 위해 python 3.6 버..
![[python] filter](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcClwqV%2FbtqIZndwV6j%2FAAAAAAAAAAAAAAAAAAAAAIn8P-bSrFiN3ho5dkDuPf0jkS2b_fSNBn_DSM_UK76z%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3DuE9XMISsfpagpNTmKIBkZhBYCm8%253D)
[python] filter
📗 filter python의 built-in함수로 리스트나 딕셔너리같은 iterable한 데이터를 조건에 맞는 값만 추출할 때 사용하는 함수이다. 🔵 사용법 filter(function(함수), iterable(리스트나 딕셔너리등) 🔹 함수를 넣어 사용할 때 def func(x): if x % 2 == 1: return x lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] odd_lst = list(filter(func, lst)) print(odd_lst) # >>> [1, 3, 5, 7, 9] 🔹 lambda로 사용할 때 lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] odd_lst = list(filter(lambda x: x % 2 == 1, lst)) pr..
![[python] accumulate(itertools), 누적 합](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FZe3r5%2FbtqITtTptoN%2FAAAAAAAAAAAAAAAAAAAAAEicuQs7D-lIVtEi46aJcZp1NMuw2JYzg4il476TmOq9%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3D8FsLND53Sla%252BwYJ0Wd91%252BWSn9Eg%253D)
[python] accumulate(itertools), 누적 합
📗 accumulate 뜻으로는 축적하다? 한마디로 누적된 합을 뽑아주는 녀석 🔵 사용법 from itertools import accumulate a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] b = list(accumulate(a)) print(a) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(b) # [1, 3, 6, 10, 15, 21, 28, 36, 45, 55] 값이 저절로 누적되는 것을 볼 수 있다. 이것을 왜 사용하느냐하면 사실 for문 만으로도 값을 누적한 리스트를 뽑을 수 있지만 속도면에서 큰 차이가 난다.( 특히 값이 커지면 커질수록 ) 🔵 속도 측정 1번 for문 a = [x+1 for x in range(1000000)] for i in..
![[python] defaultdict](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbKBmJF%2FbtqIWRzHdHV%2FAAAAAAAAAAAAAAAAAAAAAKzQTMdaG73MQC1wsjYsNZF8O0aCdhLWj8mGRyClYhJV%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3Du9QdeGv37f8%252FH4ARRewRnPe8rLg%253D)
[python] defaultdict
📗 defaultdict defaultdict 는 dict 의 서브 클래스이다. 이름에서 유추할 수 있듯이 기본값(default)를 설정할 수 있는 좋은 친구이다. 🔵 defaultdict 이러한 번거로움을 없애주는게 바로 defaultdict이다. defaultdict는 처음 선언할 때 다양한 기본값을 지정할 수 있다. from collections import defaultdict my_defaultdict = defaultdict(int) print(my_defaultdict) # defaultdict(, {}) my_defaultdict = defaultdict(dict) print(my_defaultdict) # defaultdict(, {}) my_defaultdict = defaultdict..
![[python] pow, 제곱, 거듭제곱과 나머지](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FrVrXA%2FbtqI07asvk0%2FAAAAAAAAAAAAAAAAAAAAAI62y_a2tAfwR_-W6RL0UirTzrO7Tu5uuCJpZu02QV7s%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3DZiUaeDCbQ%252BuU39zCO1gieWiTz44%253D)
[python] pow, 제곱, 거듭제곱과 나머지
📗 파이썬에서 거듭제곱과 나머지를 구할 때! 속도 차이 🔵 pow(a,b) vs a**b 100의 100승을 구할 때 입력 방법 속도 100**100 0.8038559000000001 pow(100, 100) 0.8454946999999997 - 거듭제곱을 했을 때는 ** 을 쓰는것이 조금 더 빠르다. 하지만!! 🔵 pow(a,b,c) vs a**b%c 100의 100승을 100으로 나눈 나머지를 구할 때 입력 방법 속도 100**100%100 1.1507907 pow(100, 100, 100) 0.6850590000000001 - 나머지까지 했을 때는 pow가 훨씬 빠르다!! pow를 써보자 🔵 예외... 1000의 1승을 100으로 나눈 나머지 입력 방법 속도 100**10%10 0.007485599..
![[python] input, sys.stdin.readline](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2F0YmIl%2FbtqIXe2sDDy%2FAAAAAAAAAAAAAAAAAAAAAElUzmvwToj3uEl0TmXJpCQUPPz-Bh8l6S9X43C2mWOI%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3DESTFborEcVszMNhnfUynU9HKjiA%253D)
[python] input, sys.stdin.readline
📗 파이썬 알고리즘 풀 때!! 입력 속도 문제 🔵 input vs sys.stdin.readline 천만개의 숫자를 한줄한줄 입력받을 때의 속도 입력 방법 속도 input() 12.5초 sys.stdin.readline() 4.5초 결론: 여러줄을 입력받을 때는 input() 대신 sys.stdin.readline() 를 쓰자 출처: BACKJOON ONLINE JUDGE 링크: https://www.acmicpc.net/blog/view/56 입력 속도 비교 여러가지 언어와 입력 방법을 이용해서 시간이 얼마나 걸리는지 비교해 보았습니다. 방법: 첫째 줄에 정수의 개수 N (= 10,000,000), 둘째 줄부터 N개의 줄에 한 개의 자연수(10,000 이하)가 적힌 파일�� www.acmicpc.net