문제1번째 줄에 정렬할 수 N이 주어진다.N은 1,000,000,000 보다 작거나 같은 자연수다(주어진 N을 내림차순으로 정렬하시오) 문제분석- 자연수를 받아서, 정렬하는 문제이므로 먼저 숫자를 배열로 넣어야한다ex) 2143 -> 2,1,4,3 (분리필요)- 선택 정렬을 이용하여 문제풀이 진행과정빨간색 : 정렬된 수파란색 : 정렬해야하는 범위순서과정첫번째4123두번째4321세번째4321 슈도코드N(정렬할 수 입력)arr(N을 분리하여 배열로 저장)for(i=0 ~ arr 크기만큼 반복){ for(j= i ~ arr 크기만큼반복){ 현재 범위에서 최대 인덱스값 찾기 } if (현재 i값과 maxIdx값이 다르면){ swap (arr[i], arr[maxIdx]) }}..
정렬정렬 알고리즘정의시간복잡도삽입대상을 선택해 정렬된 영역에서 선택 데이터의 적절한 위치를 찾아 삽입하면서 정렬하는 방식O(N) ~ O(N^2)버블데이터의 인접 요소끼리 비교하고, swap 연산을 수행하며 정렬하는 방식O(N^2)선택대상에서 가장 크거나 작은 데이터를 찾아가 선택을 반복하면서 정렬하는 방식O(N^2)퀵pivot 값을 선정해 해당 값을 기준으로 정렬하는 방식O(NlogN) ~ O(N^2)힙이진트리를 이용하여 최대힙(오름차순)/최소힙(내림차순) 트리를 구성해정렬하는 방식O(NlogN)병합이미 정렬된 부분 집합들을 효율적으로 병합해 전체를 정렬하는 방식O(NlogN) + 추가적인 메모리 필요기수데이터의 자릿수를 바탕으로 비교해 데이터를 정렬하는 방식O(N) + 추가적인 메모리 필요 선택정렬이란..
문제bool change = false;for (int =1; i a[j+1] ){ change = true; swap(a[j], a[j+1]); } } if(change == false){ cout 위 버블 소트를 구현한 c++ 코드의 의도를 구하는 문제1. 1번째 줄에 N이 주어진다( 1 2. 2번째 줄부터 N개의 줄에 A[1] ~ A[N] 까지 1개씩 주어진다( 0 3. 시간제한 2초 문제 분석최대 500,000개까지 배열의 개수가 정해질 수 있으므로 O(N^2)일 경우 시간초과가 나게 된다 (버블 정렬은 시간복잡도가 O(N^2)이므로, 최대 개수는 10,000 이다 - 1초에 1억번 연산)[해결방법]1. 문제에서는 버블정렬..
문제N개의 수가 주어졌을 때, 이를 오름차순 정렬하는 프로그램을 작성하시오.- 1번째 줄에 수의 개수 N (1 - 2번째 줄부터 N개의 줄에 숫자가 주어짐- 수는 중복되지 않는다 문제 분석하기숫자 범위가 1,000으로 매우 작기 때문에, O(N^2) 시간복잡도 알고리즘을 사용해도 문제 없음버블정렬 알고리즘을 이용하여 문제풀이 슈도코드N(정렬할 수 개수)A(정렬할 배열 선언)for(i : 0~N -1){ for(j : 0 ~ N -1 -i) { 현재 A배열의 값보다 1칸 오른쪽 배열의 값이 더 작으면 두 수 바꾸기 }}A 배열 출력 구현import java.io.BufferedReader;import java.io.InputStreamReader;public class App ..
정렬정렬 알고리즘정의시간복잡도삽입대상을 선택해 정렬된 영역에서 선택 데이터의 적절한 위치를 찾아 삽입하면서 정렬하는 방식O(N) ~ O(N^2)버블데이터의 인접 요소끼리 비교하고, swap 연산을 수행하며 정렬하는 방식O(N^2)선택대상에서 가장 크거나 작은 데이터를 찾아가 선택을 반복하면서 정렬하는 방식O(N^2)퀵pivot 값을 선정해 해당 값을 기준으로 정렬하는 방식O(NlogN) ~ O(N^2)힙이진트리를 이용하여 최대힙(오름차순)/최소힙(내림차순) 트리를 구성해 정렬하는 방식O(NlogN)병합이미 정렬된 부분 집합들을 효율적으로 병합해 전체를 정렬하는 방식O(NlogN) + 추가적인 메모리 필요기수데이터의 자릿수를 바탕으로 비교해 데이터를 정렬하는 방식O(N) + 추가적인 메모리 필요 버블정렬데..
JDBC 템플릿 선언public class Test{ private final JdbcTemplate template; public Test(DataSource dataSource){ template = new JdbcTemplate(dataSource); } } JDBC 템플릿 사용법삽입, 업데이트, 삭제template.update([sql구문], [구문에필요한 파라미터1], [구문에필요한 파라미터2] ..)조회RowMapper는 결과값을 매핑하는 용도template.update([sql구문], [RowMapper()] , [구문에필요한 파라미터2] ..)private RowMapper testRowMapper() { return (rs, rowNum) ..
UnChecked예외 (데이터 접근)생성방법UnChecked예외를 먼저 만든다Checked -> UnChecked 예외로 변경 (변경시, 에러코드가 존재하면 해당 예외로 변경)예외처리public class DBErrorException extends RuntimeException{ ///... }public class Service{ //... try{ logic(); }catch (SQLException e){ if ( e.getErrorCode().isEqualTo(42122) ){ // 42122는 "SQL bad Grammer" 오류 코드 throw new DBErrorException(e..
예외 계층1. 예외계층은 최상위 계층의 Object 하위에 속한다2. Exception과 Error로 나뉘게 되는데, 흔히 말하는 예외는 Exception을 말한다3. RuntimeException(하위 자식 포함)은 실행도중에 잡히는 예외이며, 나머지 예외는 컴파일단계에서 예외로 잡히게된다(RuntimeException과 하위계층은 UnChecked예외라고 불리며, 나머지 예외는 Checked예외로 불린다) 예외처리예외 잡아서 처리하기 Exception으로 catch할 경우 모든 예외가 다 잡힌다계층의 위치에 따라 하위 예외들은 모두 포함되게 된다 (주의 : Exception을 남발할경우, 의도치 않게 모든 예외가 처리될 수 도 있음)public void func(){ try{ ..
- Total
- Today
- Yesterday
- stack
- 코딩테스트
- DFS
- Spring
- 포트폴리오
- HTML5
- 백준
- db
- 검증
- 버블정렬
- JSON
- bean
- 깊이우선탐색
- 게시판
- Thymeleaf
- 예외처리
- SQL
- JDBC
- 게시판 프로젝트
- BFS
- 정렬
- 기술면접
- 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 |