프로그래밍/알고리즘4 재귀 - 순열, 조합 재귀를 활용한 순열.. 조합.. 매번 헷갈리고 어렵다. 먼저 수학적 개념에 대해서 알아보고 프로그래밍을 도입하자. 순열 n개 중 r개를 순서대로 나열하는 방법이다. ex) 3개의 숫자 중 2개를 뽑아 순서대로 나열하면? [1, 2, 3]에서 2개를 뽑아서 나열하라 => [1, 2] [1, 3], [2, 1], [2,3], [3,1] [3, 2] 수학적 정의 nPr = n!/(n-r)! = n*n-1*...*(n-r+1) quiz) 아침 점심 저녁의 식단을 정하려고 한다. 후보지로는 한식, 중식, 양식, 일식, 분식이 있다. 이 후보지로 만들 수 있는 식단의 경우의 수는? (한식-양식-중식, 중식-양식-한식 순서는 엄연히 다른 식단이다) sol) 5개 중 3개를 순서 있이 뽑으면 5P3 이므로 5*4*3 .. 2020. 4. 4. 알고리즘 공부 사이트 국내 사이트 백준 프로그래머스 SW Academy 해외 사이트 해커랭크 리트코드 코드포스 2019. 3. 3. 알고리즘 평가 기준 알고리즘을 평가하는 기준* 시간 : 최대한 적은 시간이 걸려야한다.* 공간 : 적은 용량의 메모리를 사용하여야한다. 두 기준은 서로 상충하는 경우가 많다요즘은 메모리가 대부분 충분하기 때문에 시간을 우선시한다. 알고리즘 수행 시간 측정반복문이 수행 시간에 큰 부분을 차지한다. - 선형 시간 알고리즘 : 좋음 - 선형 이하 시간 알고리즘 : 입력의 크기가 커지는 것보다 수행 시간이 느리게 증강하는 알고리즘 - 다항 시간 알고리즘 : 변수 N과 N2, N의 거듭제곱들의 선형 결합으로 이루어진 식 - 지수 시간: 가장 큰 수행 시간 중 하나 - 소인수 분해의 수행시간입력의 값이 커질수록 필요한 메모리 공간도 증가. 입력이 차지하는 비트 수에 따라 수행 시간이 증가 시간 복잡도알고리즘 수행 시간의 기준. 기본적.. 2017. 6. 30. 알고리즘 시작 - 문제 해결 전략 문제 해결 개관문제 해결 능력을 기르기 위해 단순히 문제를 푸는 과정만을 반복하는 것이 아니라, 문제를 해결해가는 과정을 세분화하여 부분 부분 부족한 부분을 채워 나가는 형식이 되어야 한다. 문제 해결 과정 네 단계(From 어떻게 문제를 풀 것인가)1. 문제를 이해한다.2. 어떻게 풀지 계획을 세운다.3. 계획을 수행해서 문제를 해결한다.4. 어떻게 풀었는지 돌아보고, 개선할 방법이 있는지 찾아본다. 여섯 단계 문제 해결 알고리즘1. 문제를 읽고 이해한다.문제를 정확히 이해하는 것이 중요하다.2. 문제를 익숙한 용어로 재정의한다.3. 어떻게 해결할지 계획을 세운다4. 계획을 검증한다.5. 프로그램으로 구현한다.6. 어떻게 풀었는지 돌아보고, 개선할 방법이 있는지 찾아본다 문제 해결 전략1. 직관과 체계.. 2017. 6. 4. 이전 1 다음