알고리즘 챌린지 12일 차이다. 주말에 푹 쉬고 하니 확실히 상쾌하고 귀찮은 마음이 덜 생기는 것 같다. 목표를 향해 열심히 달려가는 것도 좋지만 역시 충분한 휴식이 병행되어야 한다는 점을 다시금 깨달았다. 오늘은 프로그래머스 Level2로 분류된 귤고르기 문제이다. https://school.programmers.co.kr/learn/courses/30/lessons/138476?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해당 문제 또한 자료구조를 이용하면 쉽게 풀수 있는 문제로 최근에 풀었던 시소 짝꿍문제와 상당히 유..
오늘은 코딩테스트에 자주 등장하는 기본 개념으로 조합을 알아보자. 사실 조합으로만 푸는 문제가 나오진 않지만, 가장 빈출되는 동적 계획법을 풀이하기 위해선 조합에 대한 이해를 기반으로 점화식을 도출하는 연습은 필수라고 할 수 있다. 조합과 대비되는 개념으로는 순열이 있는데 이는 가볍게 개념만 인지하고 넘어가자 - 조합 : nCr = n!/(n-r)! -> n개의 수 중에서 r개의 수를 순서를 고려하여 나열할 경우의 수 - 순열 : nPr - n!/(n-r)!r! -> n개의 수 중에서 r개의 수를 순서를 고려하지 않고 뽑는 경우의 수 알고리즘에서는 위의 수학적 점화식을 코드ㄹ화하지 않고 점화식을 사용해 표현한다. 1. 특정 문제를 가정하기 먼저 가벼운 조합 문제를 가정해보자. 5개의 데이터에서 3개를 선..