[Java] 조합 Combination
조합 조합이란 n 개의 숫자 중에서 r 개의 수를 순서 없이 뽑는 경우를 말한다. (위키백과 - 수학에서 조합은 서로 다른 n개의 원소 중에서 순서에 상관없이 r개를 선택하는 것이다. 그 경우의 수는 이항 계수이다.) 예를 들어 [1, 2, 3] 배열에서의 조합은 아래와 같이 나온다. [1, 2] [1, 3] [2, 3] 참고 순열이라는 것은 주어진 수열에서 순서에 따라 결과가 달라지는 방식을 순열이라고 한다. 말 그대로, 순서가 존재하는 열이라는 것이다. 즉 순열에서 { 1, 2, 3 }과 { 1, 3, 2 } , { 2, 1, 3 } 등 모두 다른 결과를 가져온다. 순서가 다르기 때문이다. 조합은 순서가 상관이 없는 모임을 의미한다. 순서가 상관없기 때문에 { 1, 2, 3 }, { 1, 3, 2 }..
2020. 5. 12.
[Java] 순열 Permutation
순열 순열이란 n 개의 값 중에서 r 개의 숫자를 모든 순서대로 뽑는 경우를 말한다. 수학에서 순열은 서로 다른 n개의 원소에서 r개를 뽑아한 줄로 세우는 경우의 수이다. 순열의 개수는 n의 계승 n! 와 같다. 예를 들어 [1, 2, 3] 배열에서 2개의 숫자를 뽑는 순열은 [1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2] 참고 순열이라는 것은 주어진 수열에서 순서에 따라 결과가 달라지는 방식을 순열이라고 한다. 말 그대로, 순서가 존재하는 열이라는 것이다. 즉 순열에서 { 1, 2, 3 } 과 { 1, 3, 2 } , { 2, 1, 3 } 등.. 모두 다른 결과를 가져온다. 순서가 다르기 때문이다. 조합은 순서가 상관이 없는 모임을 의미한다. 순서가 상관없기 때문에 { 1, ..
2020. 5. 12.
[Java] Graph 그래프 / 인접 행렬 / 인접 리스트
뇌를 자극하는 알고리즘 (박상현 저)를 참고해 정리한 내용입니다. Graph란? 객체 사이의 연결 관계를 표현할 수 있는 자료구조 정점의 집합과 간선의 집합의 결합 즉, 정점과 간선으로 이루어진 자료구조의 일종 G : 그래프 Vertex : = 노드(node) 또는 정점의 집합 Edge : 간선의 집합 (= link) 라고 했을 때, G = (V, E)이다. 간선으로 연결되어 있는 두 정점을 가리켜 서로 '인접(adjacent)' 또는 이웃 관계에 있다고 말한다. (A, B), (A, D), (A, E), (B, C), (B, E), (C, D)가 서로 이웃 관계에 있다. 이렇게 간선을 통해 서로 이웃이 된 각 정점은 그래프 안에서의 길을 형성하기도 한다. 예를 들어 정점 A에서 정점 C까지는 A, B,..
2020. 5. 9.
[백준 - Java] 17298번 : 오큰수
문제 더보기 https://www.acmicpc.net/problem/17298 크기가 N인 수열 A = A1, A2, ..., AN이 있다. 수열의 각 원소 Ai에 대해서 오큰수 NGE(i)를 구하려고 한다. Ai의 오큰수는 오른쪽에 있으면서 Ai보다 큰 수 중에서 가장 왼쪽에 있는 수를 의미한다. 그러한 수가 없는 경우에 오큰수는 -1이다. 예를 들어, A = [3, 5, 2, 7]인 경우 NGE(1) = 5, NGE(2) = 7, NGE(3) = 7, NGE(4) = -1이다. A = [9, 5, 4, 8]인 경우에는 NGE(1) = -1, NGE(2) = 8, NGE(3) = 8, NGE(4) = -1이다. 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째에..
2020. 5. 3.