본문 바로가기

전체 글78

not enough values to unpack unpack 하기에 값이 부족하다>? Packing(패킹) 여러개의 객체를 하나의 객체로 합쳐주는것 unpcking(언패킹) 여러 개의 객채를 포함하고 있는 하나의 객체를 풀어준다. 변수명1,변수명2 = 값1,값2, 형식으로 변수를 (,)로 구분한 뒤 각 변수에 할당될 값을 각각 지정해 주어야 한다. 변수의 개수와 값의 개수를 맞춰주지 않아서 나온 오류 수정 변수명1 = 변수명2 = 값 2021. 11. 14.
정글Week01 알고리즘? 정글의 week01 ~week04 커리큘럼은 컴퓨팅 사고로의 전환이다. 벌써 그 01 주차가 끝났다. 매주 목요일 그 주차에 배운 알고리즘을 기반으로 시험을 본다. 수학적 머리? 첫주차 알고리즘을 풀면서 몇 년간 굳어있던 뇌를 깨우는 느낌이었다. 대학 졸업을 이후로 논리적 사고를 이렇게 깊게 해 본 적이 없었기 때문인지 나의 생각은 재귀 함수의 depth 1을 무한 재귀하고 있는 기분이랄까... 아무튼 멍해지는 기분이 끊임없이 반복되었다. 수학을 반드시 잘해야 할 필요는 없다고 말하셨던거 같은데 기본적으로 수학적 머리는 있어야 알고리즘이 수월할 것 같다. 하지만 나같이 수학을 못하는 사람도 계속해서 알고리즘 문제를 풀다 보니 처음엔 접근조차 어려웠던 문제가 다시 보면 그래도 풀 수 있게 되는 경험을 하였.. 2021. 11. 14.
퀵 정렬 퀵정렬 기본 원리 한 원소를 무작위로 골라 기준(Pivot)으로 삼고 배열을 분할한다. 선택한 원소보다 작은건 앞쪽으로 큰것은 뒤쪽으로 보낸다. 퀵 정렬은 분할정복 기법을 사용한다. 피벗 A를 정한후, 왼쪽에는 피벗보다 작은값을, 오른쪽에는 피벗보다 큰 값을 둔다. 피벗 A의 왼쪽값에 대해 또 피벗B를 정해 왼쪽값에는 피벗B보다 작은 값을 오른쪽에는 피벗보다 큰 값을 둔다. 피벗 A의 오른쪽값에 대해 또 피벗C을 정해 왼쪽값에는 피벗C보다 작은 값을 오른쪽에는 피벗보다 큰 값을 둔다. 이 순회를 반복한다. 퀵정렬 time complexity 성능이 가장 좋을때 : 피벗을 중심으로 N/2개씩 분할반복 되었을때 이 경우 log2N단계가 생성 최대 N번의 비교연산을 한다. 따라서 평균 복잡도는 O(N log2.. 2021. 11. 14.
재귀 알고리즘 재귀 함수 : 어떤 함수에서 자신을 다시 호출하여 작업을 수행하는 방식의 함수 재귀함수로 팩토리얼 구현 def factorial (n:int)->int: if n>o: return n*factorial(n-1) else : return 1 n= int(input("출력할 팩토리얼값을 입력하라:") print(f'{n}의 팩토리얼은 {factorial(n)} 입니다.') n=3일 경우 3*2*1*1 로 재귀적으로 들어갑니다. 재귀(Recursive) vs 반복(Iteration) 반복과 재귀의 가장 큰 차이는, 재귀는 스스로를 호출한다는 점에 있다. 재귀함수와 반복의 시간복잡도 재귀 재귀의 시간 복잡도는 이전 호출의 입장에서 n번째 재귀 호출의 값을 알아내면 알 수 있다. 그러므로 종결 조건(Termina.. 2021. 11. 14.
검색 알고리즘 데이터의 집합에서 원하는 값을 가진 원소를 찾아내는 알고리즘 검색과 키 검색시 검색 조건은 모두 어떠한 항목에 주목하는에 이 항목이 검색의 키이다. 예를들어 국적이 한국인사람 나이가 20이상 30미만인 사람 이름에 '윤'이 들어간 사람 을 찾는다고 할때 위 항목은 다음과 같은 키로 정리할 수 있다. 국적 : 키값과 일치하도록 지정 나이 : 키값의 구간 지정 이름 : 키값과 가깝도록 지정 위 조건을 하나만 지정할 수도 있고 논리곱, 논리합을 사용해 복합하여 지정도 가능하다. 검색종류 자료구조에 의존하는 알고리즘 배열검색 연결 리스트 검색 이진트리 검색 2021. 11. 12.
정글 3기 week00 정글입성 정글입성 벌써 정글 프로그램에 들어온 지 5일째가 되었다. 정글이란 프로그램의 제목 정말 잘 만든 것 같다는 생각이 들었다. 정말 이 한 주간 정글에 맨몸으로 떨어진 것 같은 기분이었고 어찌어찌 헤쳐 나가려 발버둥 치다 보니 5일이 지나갔다. 처음 오리엔테이션 당시 의장님께서 이런 말씀을 하셨다. "내 인생은 내인생이다. 나를위해 살아라!" 물론 이렇게 짧게 말씀하시진 않았지만 핵심은 내인생은 내가 사는 것이기에 기본적으로 행동에 자율이 있고 다만 그 자율적인 행동에 책임도 나한테 있다는 말씀이셨다. 맞는 말씀이셨고 정글은 이러한 철학을 고스란히 담고 있는 것 같았다. 아직은 젊은 나이지만 지금까지 살아온 나날을 돌이켜보면 나는 내 인생 누가 살아주는 것 아니니 내가 하고 싶은 것을 하며 살겠다고 많은 .. 2021. 11. 6.