우선순위 큐?Priority Queue? 큐와 동일하게 FIFO 구조를 가지는데, 특이한점은 들어온 순서가 아닌 우선순위에 따라서 삽입/삭제 순서가 정해진다따로 정렬 기준을 정하지 않을경우, 오름차순으로 정렬이된다 (작은수가 우선순위)reverseOrder()를 사용하면 내림차순으로 정렬이된다 (큰 수가 우선순위) 우선순위 큐 특징높은 우선순위의 요소를 먼저 꺼내서 처리내부 요소는 힙으로 구성되어 이진트리 구조로 이루어짐힙으로 구성되어있어 시간복잡도는 O(NlogN)이다우선순위를 중요시할때 사용한다 우선순위큐 메서드선언)PriorityQueue [우선순위큐 이름] = new PriortyQueue();삽입add() / offer()을 사용하여 삽입add()는 가득차있으면, Exception 예외offer..
문제N장의 카드가 존재 (순서가 순차적으로 카드개수만큼 존재)1. 1에서 N까지 번호가 존재2. 아래 동작으로 계속 반복 후 마지막 수를 출력 ( 순서 ) > 가장 위에 있는 카드를 바닥에 버림 > 그다음 가장 위에있는 카드를 마지막으로 옮김 > 이걸 반복정수 N ( 1 문제분석가장 위에있는 카드를 가장 마지막으로 이동 시키는 작업 ( -> Queue의 이해도 확인 )선입선출을 생각하여 문제 풀기 슈도코드N개 입력 받기for( 카드의 개수 ){ 큐에 카드 저장}while( 카드 1장이 남을때까지 ){ 맨위의 카드를 버림 맨위의 카드를 가장 아래의 카드 밑으로 이동}마지막으로 남은 카드 출력 구현import java.io.BufferedReader;import java..
문제1. 크기가 N인 수열(A) 존재2. 각 원소 A[i]에 관련된 오큰수 NGE[i] 를 구한다3. 오큰수가 존재하지 않는 경우는 , "-1"로 저장( 1 (* 오큰수 : 오른쪽에 큰 수 중 가장 왼쪽에 있는 수 )ex) A [ 3,5,2,7 ] => NGE [ 5,7,7,-1 ]A [ 9,5,4,8 ] => NGE [ -1, 8,8,-1 ] 문제 분석N의 조건이 1,000,000까지 가능하므로 , 일반적인 반복문으로 풀이를 할 경우 시간초과가 난다스택을 이용하여, 풀이 진행스택에 새로 들어오는 수가 top에 존재하는 수보다 크면 그 수 는 오큰수가 된다오큰수 구한 후 수열에서 오큰수가 존재하지 않는 숫자에 -1을 출력ex) A[top] ex) A [ 3,5,2 ,7] // result [ ] // s..
문제1. 수열의 개수 N 제공 ( 1 2. n개의 줄에는, 1이상 n이하의 정수가 1개씩 제공 (같은 정수가 2번 나오지는 않음)3. 해당 제공된 n개의 줄의 수열을 오름차순으로 정리 (스택 이용)4. 오름차순 정렬이 불가능할경우, "No"반환입력출력8+4+3+6+8-7-5+2+1- + + - - - - 문제 분석1부터 자연수를 증가시키면서, 입력으로 주어진 숫자와 비교하며 자연수를 스택에 추가하거나 빼는 방식으로 풀이스택 연산 방법1. 현재 수열 값 >= 자연수- 현재 수열값이 큰 경우, 자연수를 증가시키며 스택에 삽입2. 현재 수열값 == 자연수- 스택에서 값을 빼오며, 입력버퍼에 쌓아두고, 삭제진행- 단, 같지 않을경우 스택을 이용해서 오름차순을 만들 수 없으므로 "No" 반환 수도코드probl..
문제1. 숫자 배열 크기 + 범위 크기가 주어짐2. 숫자 배열이 주어짐3. 숫자배열에서 범위만큼 움직이며, 그때마다 최소값을 저장문제 조건 : ( 1 문제분석범위 크기 이동만큼 최소값 탐색슬라이딩 윈도우 : 2개의 포인터를 잡고, 이동시키며 최소값 탐색범위크기 및 숫자개수 최대치가 5,000,000이므로 시간복잡도를 O(n) 초과하여 잡을 수가 없음 (시간 초과)기본 정렬 시간 복잡도 : O(nlogn)일반적인 정렬알고리즘으로 풀지 못하므로, 덱(deque)을 도입Deque (덱) - 앞쪽에서 추가/삭제 가능, 뒷쪽에서도 추가/삭제 가능[구조] Add -> -> Remove Fr..
문제문자열 {A, C, G ,T}인 문자열만 주어지는 상황1. 문자열 길이(S)를 입력 받고, 그 중에 부분 문자열(P)을 가지고 비밀번호를 만듬2. 부분 문자열중에서 비밀번호를 만들 때,A,C,G,T 각각의 만족하는 최소 조건이 존재3. 최소 조건을 만족하면 비밀번호를 만들 수 있음 (해당 개수 세기)4. 2초이내, (1 ex) A C G T A C G G T A C C (주어진 문자열) (A (2개), C(0개), G(1개), T(1개) 이상 조건 충족)->해당 조건을 만족하는, 비밀번호 만들 수 있는 개수 구하기 문제분석1,000,000개 이므로, O(n)으로 시간복잡도를 가져야함슬라이딩 윈도우를 이용하여, 부분문자열을 표현조건에 맞는 비밀번호 생성 문자를 이용하여, 몇개를 만들 수 있는지 구현[..
- Total
- Today
- Yesterday
- HTML5
- 예외처리
- SQL
- 포트폴리오
- 코딩테스트
- db
- 백준
- DFS
- 이진탐색
- 버블정렬
- 티스토리챌린지
- JDBC
- Thymeleaf
- BFS
- 우선순위 큐
- 검증
- 알고리즘
- 오블완
- 기술면접
- 깊이우선탐색
- JSON
- 정렬
- 게시판 프로젝트
- Spring
- stack
- 클래스
- 게시판
- 타입변환
- bean
- Java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |