파이썬 알고리즘 팁 및 필수 지식
1. input 빠르게 받기 import sys n, m = map(int, sys.readline().split()) 2. 문자 숫자 변환 chr 함수와 ord 함수를 이용한다 chr(65) # A ord('A') # 65 3. List Comprehension 응용 keys = [ key for key, value in dict ] values = [ value for key, value in dict ] keysValues = [ (key,value) for key, value in dict] map = [ [] for _ in range(n)] # 텅빈 2차원 배열 zeros = [0] * 10 >>> [ [i,i+1] for i in range(10)] [[0, 1], [1, 2], [2, 3]..
2022. 12. 8.
파이썬 순열/조합 permutation, combination 사용하기
from itertools import permutations, combinations a = [1,2,3,4,5] list(permutations(a,2)) 결과 : [(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)] list(combinations(a,3)) 결과 : [(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)] 고등학교때 nPr nCr 을 기억하고 있을 것이다. n개에서 r개를 선택하여 나열하는 경우의수 n개에서 r개를 선택하는 경우의 수 permutations과 combinations는 위 두개를 계산해주는 함수이다. permitations(인..
2021. 4. 15.
[프로그래머스][동적계획법] 정수 삼각형
programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 간단한 dp문제. 숫자 하나 기준으로 윗줄의 left right 숫자를 더하며 가장 큰것을 선택해 나가면 된다. 다른사람 풀이보니 한줄에 풀었던데 그런건 어케하는건지.. def solution(triangle): answer = 0 length = len(triangle) dp = [ [0] * i for i in range(1, length + 1)] dp[0][0] = triangle[0][0] for i in range(1, length): fo..
2021. 4. 13.
[프로그래머스][정렬] 가장 큰 수
programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 아이디어 문자열 A+B, 로 만든 숫자와 B+A로 만든 숫자를 비교하여 어느게 더 큰수인지 확인하고 정렬한다 파이썬 문자열 비교를 이용하면 사전순으로 정렬해주는데 이걸 수 비교수단으로 이용할 수 있다 답이 0일 경우에는 0만 리턴해준다.(마지막 테스트 케이스) from functools import cmp_to_..
2021. 3. 24.