목록콘텐츠 (30)
supergravity
목차 -시작 -permutaions -combinations -문제 시작 파이썬 itertools를 이용하면. 쉽게 순열조합을 처리할 수 있습니다. 대부분 순열조합을 사용하는 문제는 인풋값이 10개 정도로 작아. 모든 경우의 수를 탐색해도 작은 시간을 소요할떄 사용합니다. 인풋값이 작아 모든 경우를 탐색해도 무방할 때. "순열조합을 사용하면 편하겠군, 개꿀~!" 이란 생각이 나는 것을 목표로 학습하면 좋습니다. permutaions permutaions(리스트, r) permutaions는 리스트와 같은 반복 가능한 객체와 자연수 r을 파라매터로 받습니다. 이를 실행하면 리스트에서 r개를 뽑아 순서를 고려하여 나열한 모든 경우의 수를 리턴합니다. 아래의 예시는 반복 가능한 객체 집합 {A, B, C}에 ..

목차 -시작 -stack -queue -문제 시작 stack과 que는 핵심 유형으로 분류될 만큼 중요한 자료구조입니다. 또한 다양한 알고리즘에 응용이 되어 사용됩니다. 이 두 알고리즘은 개념적으로 쉽지만. 처음 접한다면 문제에 응용하는데 까다롭습니다. 그래서 꼭! 문제를 풀어 보고 어떤 상황에 사용하면 좋은지 익혀야 합니다. stack stack은 사전에서 찾아보면. 쌓아 올린다는 뜻을 가지고 있습니다. 그래서 stack 자료구조는 자료가 들어오면 맨위에 쌓고. 자료가 나갈떈 마지막에 쌓아 올린 자료를 내보냅니다. stack 자료구조에 데이터를 저장하는 행위를 push라고 하고. 마지막 데이터를 빼내는 행위를 pop이라고 합니다. 위의 그림은 텅!빈 스택에 1과 2를 순차적으로 들여보내고(push). ..

목차 -인트로 -피보나치수열 -뒤에서 내려가기 : recursion -뒤에서 내려가는 방식을 효율적으로 만들기 : memo -앞에서 올라가기 : tublatioin -정리 시작 1.다이나믹 프로그래밍이 뭐임? 다이나믹 프로그래밍은 계산 결과를 저장해 두었다가, 필요할 때 사용하는 알고리즘 기법입니다. 우리는 다이나믹 프로그래밍 기법과 비슷한 행동을 초등학교 때부터 했습니다. 초등학교 때 했던 3 자릿수 곱셈에 대해서 생각해봅시다. 머리가 좋으신 분들은 이를 암산하여 계산하겠지만, 대부분의 우리는 그렇지 못했습니다. 그래서 학교에서는 곱할 두 수를 이면지에 작성하고, 한 자리씩 계산하여 마지막에 결과를 취합하는 방법을 사용하였습니다. 이 방법은 메모지에 결과를 저장하였다 사용한다는 점에서 다이내믹 프로그래..

목차 시작 좋은 알고리즘 알고리즘 성능 평가 문제를 접근하는 법 : 읽기 전부다. 짝퉁코드. 구현 출력결과 n 1 sum_1: 2 sum_2: 1 sum_3: 0 sum_4: 1 ---------------- n 1000 sum_1: 76 sum_2: 34320 sum_3: 1 sum_4: 1 ---------------- n 10000 sum_1: 662 sum_2: 3287307 sum_3: 1 sum_4: 2 ---------------- n 100000 sum_1: 7501 sum_2: 345793250 sum_3: 38 sum_4: 3 ---------------- 자 그럼 출력 결과를 분석해 봅시다. 함수 sum_1 sum_2 sum_3 sum_4 인풋 n에 대한 루프 1 중첩 2 중첩 0 중..
시작 이전까지는 시퀀시 자료구조에 대해서 알아보았습니다. 시퀀스는 메모리에 연속적으로 존재하는 자료구조 이며, 이러한 특성 때문에 슬라이싱과 인덱싱 기능 등이 있었습니다. 이번에 살펴볼 컬렉션 자료구조는 오브젝트를 여러 개 가지고 있지만, 시퀀시와 달리 데이터가 메모리에 연속적으로 존재하지 않는 컬렉션 자료구조에 대해서 알아볼 것입니다. 컬렉션 자료구조는 데이터가 연속적으로 저장되어 있지 않기 때문에, 시퀀스에서 기본적으로 제공하던 슬라이씽 기능이 없습니다. 그래서 기본 기능은 컬렉션 자료구조에 성분이 존재하는지 확인하는 in, 컬렉션에 담겨있는 오브잭트의 수를 세는 len 그리고 컬렉션의 데이터를 순회하는 기능 (loop)을 가지고 있습니다. 파이썬에서 기본적으로 제공되는 컬렉션 자료구조는 set과 d..
시작 이번 영상에서는 파이썬 SEQUENCE에 대해서 알아봅시다. SEQUENCE 타입은 거의 모든 문제에서 사용이 되는 데이터 타입이기에 확실히 익혀야 합니다. 특히 SEQUENCE 타입 중 문자열의 경우 프로그래머스 레벨 1, 2에서 자주 사용됩니다. 문자열의 기본 연산과 함수들을 이용한 빡구현 문제가 대부분입니다. 그러면 시작해 봅시다. SEQUENCE 타입 파이썬 SEQUENCE타입은 메모리에 연속적으로 저장되는 데이터 타입을 말합니다. 이처럼 연속적으로 메모리에 오브잭트들이 저장이 되는 특성을 효율적으로 다룰 수 있도록. 기본 기능을 제공하고 있습니다. 기본 기능은 아래와 같습니다. 시퀀스의 크기를 알 수 있는 len(seq) 시퀀스에 특정 오브젝트가 있는지 확인하는 obj in seq 시퀀스의..
__main__은 파이썬 인터프리터가 실행되는 스크립트의 위치를 나타내는 것입니다. 파이썬은 namespace를 통해 오브잭트와 name(변수)를 연결합니다. namespace는 딕셔너리 형태로 대부분 구현되어 있습니다. namespace 중 파이썬 인터프리터가 실행될 때 global namespace가 생성됩니다. global namespace는 globals()를 print 해보면 성분을 확인할 수 있습니다. 프린트해보면 키와 벨류로 구성된 딕셔너리 형태입니다. namespace의 키는 스크립트에 바로 작성할 수 있습니다. global namespace를 잘 보면 '__name__' : '__main__'가 저장되어 있습니다. namespace의 키는 스크립트에서 사용할수 있으니 print(__nam..
클레스 메서드, 스테틱 메서드 https://www.geeksforgeeks.org/class-method-vs-static-method-python/ Class method vs Static method in Python - GeeksforGeeks A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions. www.geeksforgeeks.org 특별 메서드 or 책 https://med..