[BOJ 6603][DFS][JAVA] 로또
[문제] 독일 로또는 {1, 2, ..., 49}에서 수 6개를 고른다. 로또 번호를 선택하는데 사용되는 가장 유명한 전략은 49가지 수 중 k(k>6)개의 수를 골라 집합 S를 만든 다음 그 수만 가지고 번호를 선택하는 것이다. 예를 들어, k=8, S={1,2,3,5,8,13,21,34}인 경우 이 집합 S에서 수를 고를 수 있는 경우의 수는 총 28가지이다. ([1,2,3,5,8,13], [1,2,3,5,8,21], [1,2,3,5,8,34], [1,2,3,5,13,21], ..., [3,5,8,13,21,34]) 집합 S와 k가 주어졌을 때, 수를 고르는 모든 방법을 구하는 프로그램을 작성하시오. [풀이 방법] 총 6개의 숫자를 고르는 경우의 수를 구하는 문제입니다. K의 범위가 6 ~ 13 이기..
[SWEA 2005][D2][JAVA] 파스칼의 삼각형
[문제] 크기가 N인 파스칼의 삼각형을 만들어야 한다. 파스칼의 삼각형이란 아래와 같은 규칙을 따른다. 1. 첫 번째 줄은 항상 숫자 1이다. 2. 두 번째 줄부터 각 숫자들은 자신의 왼쪽과 오른쪽 위의 숫자의 합으로 구성된다. [풀이방법] (0,0) (1,0) (1,1) (2,0) (2,1) (2,2) (3,0) (3,1) (3,2) (3,3) (0,0)을 기준으로 왼쪽은 x좌표만 1씩 증가하는 좌표와, 오른쪽은 x와 y가 동일한 좌표는 모두 1입니다. 이 특징을 이용해서 (i, j)라고 한다면 j == 0 일 때 (i+1, j)는 1 i == j 일 때 (i+1, j+1)은 1 그 외에는 (i, j) 는 (i-1, j-1) + (i-1, j)의 합 for (int i = 0; i