본문 바로가기

알고리즘

파이썬 함수 순열 조합 순열 from itertools import permutations permutaions([],2) 조합 from itertools import combinations 중복순열 from itertools import product 중복조합 from itertools import combinations_with_replacmnt 진수 2진수 bin() 8진수 oct() 16진수 hex() unicode chr() ord() arr=[1,2,3,4,5] sum(arr,6)=21 이어서 더하기 가능 reverse() str.upper() str.lower() str.title() str.swapcase() str.capitalize() zip() enumerate() sort() sorted() s.. 더보기
[알고리즘] DFS & BFS 대표적인 그래프 탐색 알고리즘 DFS & BFS 탐색이란 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정 스택: 파이썬에서 리스트를 이용하기 큐: 파이썬의 리스트로도 구현가능하지만, 시간복잡도 문제(원하는 인덱스 추출후 다른 인덱스들을 조정해주는 과정이 필요하기 떄문에 낭비가 심함)가 있으므로 덱을 이용하여 구현! from collections import deque queue=deque() queue.append(7) queue.popleft() 재귀함수 : 자기 자신을 다시 호출하는 함수 ex) 유클리드 호제법 (최대공약수 계산) - 두 자연수 A,B에 대해 (A>B) A를 B로 나눈 나머지를 R이라고 하면 A,B의 최대공약수는 B,R의 최대공약수와 같다 def gcd(a,b): if a%b==0.. 더보기
[프로그래머스] 전화번호 목록 _ Python 해시Lv.2 "전화번호 목록" (출처:프로그래머스) 문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 같은 전화번호가 중복해.. 더보기
[프로그래머스] 완주하지 못한 선수 _ Python 해시Lv.1 "완주하지 못한 선수" (출처:프로그래머스) 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예 Participant Compl.. 더보기