목록분류 전체보기 (103)
Vienna

https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net ◇ 문제 지민이는 N개의 원소를 포함하고 있는 양방향 순환 큐를 가지고 있다. 지민이는 이 큐에서 몇 개의 원소를 뽑아내려고 한다. 지민이는 이 큐에서 다음과 같은 3가지 연산을 수행할 수 있다. 첫 번째 원소를 뽑아낸다. 이 연산을 수행하면, 원래 큐의 원소가 a1, ..., ak이었던 것이 a2, ..., ak와 같이 된다. 왼쪽으로 한 칸 이동시킨다. 이 연산을 수행하면, a1, ...,..

◇ 다른 방법으로 정의하는 e y=1/x의 그래프와 x축이 만드는 영역을 잘 살펴보면, x값이 증가함에 따라 영역의 넓이가 증가하기는 하지만, 그래프가 점근선인 x축에 다가갈수록 영역의 넓이또한 점점 증가폭이 둔해진다 이 영역의 넓이를 x값에 대한 함수 g(x)라 두면 다음과 같은 성질이 존재한다. g(1) = 0 g(ab)=g(a) + g(b) g(a/b)=g(a)-g(b) g(a^b)=b*g(a) 즉, 이 넓이에 관한 함수 g(x)는 일종의 로그함수인 것이다. $$g(x)=log_{p}x$$ 그런데 x=e일 때 영역의 넓이 g(e)=1이므로 다음과 관계가 성립한다. $$g(e)=log_{p}e=1$$ 결론적으로, 다음과 같이 말할 수 있다. $$g(x)=log_{e}x$$ 이처럼 로그 중 밑이 e인 ..
◇ 무리수 e 연이율 r인 복리예금에 a만큼의 월급을 불입하고, 이자는 연말에 계산한다고 하자. 그럼 연말의 원리합계는 원금 a와 그에 대한 이자 ar이 더해져서 모두 a(1+r)이 된다. 하지만 만약 6개월에 한 번씩 r/2를 이율로 적용하여 이자를 지급하면 그 해 연말의 원리 합계는 얼마가 될까? 첫 6개월이 지난 후의 원리합계가 a(1+r/2)임은 명백하다. 이제 이 금액이 다음 6개월에 대한 원금이 되고, 그 원리 합계는 아래와 같을 것이다. $$\big\{a\cdot( 1+\frac{r}{2})\big\}\cdot(1+\frac{r}{2})=a(1+\frac{r}{2})^2$$ 이것을 일반화하면 다음과 같은 수식으로 표현할 수 있다. $$a(1+\frac{r}{n})^n$$ 여기서 더 나아가 시..
◇ 이진 트리란? 이진 트리는 LinkedList 처럼 여러 개의 노드가 서로 연결된 구조 각 노드에 최대 2개의 노드를 연결할 수 있다. 루트 노드에서부터 시작해서 계속 확장해나갈 수 있다. 위 아래로 연결된 두 노드를 '부모-자식' 관계(상대적)에 있다고 한다. 위의 노드는 부모 노드 아래 노드는 자식 노드 class TreeNode{ TreeNode left; // 왼쪽 자식 노드 Object element; // 현 노드 데이터 TreeNode right; // 오른쪽 자식 노드 } ◇ TreeSet이란? 이진 검색 트리(Binary Search Tree)라는 자료구조의 형태로 데이터를 저장하는 컬렉션 클래스 검색 효율이 뛰어난 자료구조다. 현재 TreeSet은 이진 검색 트리의 성능을 향상시킨 ..

◇ 문제 설명 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면, arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다. arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다. 배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요. ◇ 제한사항 배열 arr의 크기 : 1,000,000 이하의 자연수 배열 arr의 원소의 크기 : 0보다 ..

https://www.acmicpc.net/problem/25556 ◇ 문제 포닉스는 길이가 N인 순열 A와 네 개의 비어 있는 스택을 가지고 있다. 길이가 N인 순열이란, 1 이상 N 이하의 서로 다른 정수 N개가 임의로 나열된 수열을 말한다. 스택이란 자료구조의 한 종류로 가장 나중에 삽입한 자료가 가장 먼저 나오는 후입선출 (Last In First Out, LIFO)의 특성을 가지고 있다. 포닉스는 PPC를 맞아 더러워진 순열을 청소하려 한다. 순열을 청소하는 것은 다음과 같은 과정을 통해 순열을 오름차순으로 정렬하는 것을 뜻한다. 즉 순열을 1,2,3,⋯ N으로 만들어야 한다. 순열 A의 원소들을 앞 원소부터 순서대로 네 개의 스택 중 하나에 삽입한다. 순열 A의 모든 원소를 스택에 삽입했다면,..

극한 개념은 무한수열의 합인 무한급수에도 마찬가지로 적용할 수 있다. 어떤 수열의 부분합 Sn의 극한이 있고, 수열의 초항부터 n번째 항까지 더한값이므로 n→∞일때 다음과 같이 표현할 수 있다. $$ \displaystyle \lim_{n \to \infty}S_{n}=\displaystyle \lim_{n \to \infty}\sum_{k=1}^{n}a_k$$ ◇ 급수의 수렴 조건 어떤 무한급수가 수렴한다면, 그 수열은 0으로 수렴한다. 이 명제의 대우, "어떤 무한수열이 0으로 수렴하지 않으면그 수열의 합은 발산한다" 역시 참이다. 하지만 역명제, "어떤 무한수열이 0으로 수렴하면 그 수열의 합은 수렴한다"는 참이 아니다. 다음과 같은 수열의 극한이 있다. $$a_{n}=\sqrt{n+1}-\sqrt..

■ HashSet Set 인터페이스를 구현한 가장 대표적인 컬렉션. Set 인터페이스의 특징대로 중복된 요소를 저장하지 않는다. 저장순서를 유지하지 않는다. 만약 저장순서를 유지하고자 하는 경우에는 LinkedHashSet을 사용해야 한다. import java.util.*; public class Main { public static void main(String[] args) { Object[] objArr = {"1", new Integer(1), "2", "2", "3", "3", "4", "4", "4"}; Set set = new HashSet(); for(int i=0, iMax = objArr.length; i
◇ 무한대(∞) 어떤 수량이 한없이 커지는 상태 문자 n이 한없이 커지는 상태는 기호로 아래와 같이 쓴다. $$n\to \infty $$ n이 한없이 커짐에 따라 an이 특정한 값 c에 한없이 가까워질 때, 이 수열은 c에 수렴(Converge)한다고 한다. 이때 c를 수열 {an}의 극한값이라고 하며, 기호 lim을 사용하여 아래와 같이 표현할 수 있다. $$\displaystyle \lim_{n \to \infty }a_{n}=c$$ ◇ 수렴(Converge)의 엄밀한 정의 어떤 양수 e에 대해서도 그에 상응하는 자연수 N이 존재하여 k>=N인 모든 k에 대해서 |ak-c|

◇ 급수(Series): 수열의 항을 모두 더한 값 유한 수열의 합: 유한 급수 무한 수열의 합: 무한 급수 ◇ 부분합: 어떤 특정 항까지만 더한 값. $$S_{n}=a_{1}+a_{2}+a_{3}+\cdots +a_{n}$$ 예제: 어떤 수열 {an}의 초항부터 n번째 항까지 더한 합 Sn이 다음과 같을 때, 이 수열의 일반항을 구하여라. (1) 2n^2+n (2) 3^n-1 (3) 2n^3+3n^2+n 풀이 (1) $$S_{n}=2n^2+n$$ $$a_{n}=S_{n}-S_{n-1}=2n^2+n-(2(n-1)^2+(n-1))$$ $$2n^2+n-(2(n-1)^2+(n-1))=2n^2+n+(-2n^2+4n-2-n+1)=4n-3$$ $$\therefore a_{n}=4n-3$$ 나머지 문제는 아래 개념을..