조합 3

백준 2800 (괄호 제거) - 조합알고리즘, Stack

문제 어떤 수식이 주어졌을 때, 괄호를 제거해서 나올 수 있는 서로 다른 식의 개수를 계산하는 프로그램을 작성하시오. 이 수식은 괄호가 올바르게 쳐져 있다. 예를 들면, 1+2, (3+4), (3+4*(5+6))와 같은 식은 괄호가 서로 쌍이 맞으므로 올바른 식이다. 하지만, 1+(2*3, ((2+3)*4 와 같은 식은 쌍이 맞지 않는 괄호가 있으므로 올바른 식이 아니다. 괄호를 제거할 때는, 항상 쌍이 되는 괄호끼리 제거해야 한다. 예를들어 (2+(2*2)+2)에서 괄호를 제거하면, (2+2*2+2), 2+(2*2)+2, 2+2*2+2를 만들 수 있다. 하지만, (2+2*2)+2와 2+(2*2+2)는 만들 수 없다. 그 이유는 쌍이 되지 않는 괄호를 제거했기 때문이다. 어떤 식을 여러 쌍의 괄호가 감쌀..

백준 1759 (암호 만들기) - 조합알고리즘

문제 바로 어제 최백준 조교가 방 열쇠를 주머니에 넣은 채 깜빡하고 서울로 가 버리는 황당한 상황에 직면한 조교들은, 702호에 새로운 보안 시스템을 설치하기로 하였다. 이 보안 시스템은 열쇠가 아닌 암호로 동작하게 되어 있는 시스템이다. 암호는 서로 다른 L개의 알파벳 소문자들로 구성되며 최소 한 개의 모음(a, e, i, o, u)과 최소 두 개의 자음으로 구성되어 있다고 알려져 있다. 또한 정렬된 문자열을 선호하는 조교들의 성향으로 미루어 보아 암호를 이루는 알파벳이 암호에서 증가하는 순서로 배열되었을 것이라고 추측된다. 즉, abc는 가능성이 있는 암호이지만 bac는 그렇지 않다. 새 보안 시스템에서 조교들이 암호로 사용했을 법한 문자의 종류는 C가지가 있다고 한다. 이 알파벳을 입수한 민식, 영..

백준 2004(조합 0의 개수)

문제 ( n ) 의 끝자리 0의 개수를 출력하는 프로그램을 작성하시오. ( m ) 풀이 팩토리얼의 0의개수를 구하는 문제의 풀이를 참고하여 풀었다. 백준 1676 (팩토리얼 0의 개수) 백준 1676 (팩토리얼 0의 개수) 문제 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. 풀이 문제의 N 의 범위가 ( 0 ≤ N ≤ 500 ) 이기 때문에 Integer 과 Long 의 범위를 넘어 오버플로 conpulake.tistory.com 위 문제에서는 2가 부족하지 않아서 5의 개수만 구해도 됐지만 조합의 경우에서는 2가 부족한 경우가 있었다. 그래서 2와 5의 개수를 각각 구한뒤 더 적은 것의 개수가 뒤에서 부터 0의 개수다. import java.io.Bu..