본문 바로가기

728x90

분류 전체보기

(405)
[프로그래머스] 전력망을 둘로 나누기 코드 힌트인접 행렬 사용:map 배열은 전선의 연결 상태를 기록하는 인접 행렬로, 두 노드가 연결되면 map[i][j] = 1로 설정합니다.전선 끊기:모든 전선을 하나씩 끊어보고 각 경우에 대해 두 네트워크로 나누어진 후, 그 크기 차이를 계산합니다.cutWire() 함수에서 끊은 전선은 다시 복구됩니다.DFS(깊이 우선 탐색):DFS를 이용하여 한 네트워크의 노드 개수를 계산합니다. 한쪽 네트워크를 탐색한 후, 나머지 네트워크의 크기는 전체에서 빼는 대신 다시 탐색합니다.최솟값 계산:각 전선을 끊었을 때 두 네트워크의 크기 차이를 계산하고, 그 차이의 최솟값을 갱신합니다. 정답은 더보기 클릭더보기import java.util.*;class Solution { // 방문 여부를 체크하는 배열..
[Spring Boot] Pageable 사용하기 Pagination(페이지네이션)은 많은 데이터를 한 번에 로드하지 않고, 페이지 단위로 나누어 처리하는 방식입니다. 특히, 대량의 데이터를 처리할 때 성능 개선에 큰 도움을 줄 수 있습니다. 이 글에서는 Spring에서 제공하는 Pageable을 활용하여 백엔드에서 데이터를 페이지 단위로 조회하고, 이를 프런트엔드에 전달하는 방법을 설명하겠습니다.1. Pageable 개념과 사용 목적Pageable은 Spring Data JPA에서 제공하는 인터페이스로, 요청된 페이지 번호, 페이지 크기 등의 정보를 기반으로 데이터를 가져올 수 있도록 지원합니다. 데이터베이스에서 필요한 데이터만 가져와 메모리 사용을 최소화하고, 동시에 필요한 데이터만 프런트엔드에 전달하여 성능을 최적화할 수 있습니다.주요 특징:pag..
[Spring Boot] 여러가지 Annotation 상시 업데이트하는 글입니다.Spring Boot 어노테이션어노테이션설명추가 정보@SpringBootApplication스프링 부트 애플리케이션의 시작점으로, 여러 설정을 자동으로 활성화합니다.@Configuration, @EnableAutoConfiguration, @ComponentScan을 포함합니다.  Web 어노테이션어노테이션설명추가 정보@ControllerREST API를 처리하지 않고 클라이언트에게 view를 제공합니다.@RestController와 혼동하지 않도록 주의해야 합니다.@RestControllerREST Api를 처리하는 ControllerJSON 형태로 데이터를 반환합니다.@Controller와 혼동하지 않도록 주의해야합니다.@RequestMapping특정 URL을 처리하는 메소..
[Spring Boot] JPA 연관 관계 설정하기 JPA를 사용하다 보면 여러 엔티티 간의 연관 관계를 매핑해야 할 때가 많습니다. 데이터베이스의 테이블 간 관계를 어떻게 매핑하고, 이를 엔티티 간 관계로 어떻게 설정할지에 따라 코드의 복잡성이 달라집니다. 특히, 실무에서는 엔티티와 DTO(Data Transfer Object)를 분리하여 사용하는 경우가 많기 때문에, 연관 관계를 관리할 때 여러 방법을 사용하게 됩니다. 이 글에서는 OneToMany, ManyToOne과 같은 JPA 연관 관계 매핑을 설정하고, DTO를 활용하여 데이터를 변환하는 방법을 소개하겠습니다.  1. JPA 연관 관계 매핑 기본 개념OneToMany, ManyToOne의 개념OneToMany와 ManyToOne 관계는 가장 기본적인 관계 중 하나로, 두 엔티티 간의 관계를 나..
[프로그래머스 (Oracle)] 저자 별 카테고리 별 매출액 집계하기 코드 힌트조인 구조:BOOK 테이블과 AUTHOR 테이블을 AUTHOR_ID로 조인하여 저자의 정보를 가져옵니다.BOOK_SALES 테이블과 BOOK 테이블을 BOOK_ID로 조인하여 판매 정보와 책의 정보를 연결합니다.날짜 필터링:TO_CHAR(S.SALES_DATE, 'YYYY-MM') = '2022-01'를 통해 2022년 1월의 판매 기록만 가져옵니다.매출 계산:SUM(B.PRICE * S.SALES)는 책의 가격과 판매 수량을 곱한 후, 각 저자와 카테고리별로 총 매출을 계산합니다.그룹화:GROUP BY A.AUTHOR_ID, A.AUTHOR_NAME, B.CATEGORY를 통해 저자와 카테고리별로 결과를 그룹화하여 매출을 집계합니다.정렬:ORDER BY A.AUTHOR_ID, B.CATEGOR..
[알고리즘] 병합 정렬 MergeSort (Java 예제) 정렬 알고리즘이란?정렬 알고리즘은 배열의 원소들을 조건에 맞게 순서대로 정렬하는 알고리즘입니다. 원소들이 어떤 순서로 들어오는지에 따라 적절한 정렬 알고리즘을 선택할 수 있습니다.선택 기준시간 복잡도: 알고리즘이 실행되는 데 소요되는 시간공간 복잡도: 알고리즘이 사용하는 메모리의 양안전성 (Stability): 동일한 값의 원소들의 순서가 유지되는지 여부정렬 알고리즘 종류와 시간 복잡도정렬 알고리즘 종류최선 시간 복잡도평균 시간 복잡도최악 시간 복잡도BubbleSort (버블 정렬)O(n)O(n^2)O(n^2)SelectionSort (선택 정렬)O(n^2)O(n^2)O(n^2)InsertionSort (삽입 정렬)O(n)O(n^2)O(n^2)MergeSort (병합 정렬)O(n log n)O(n log..
[프로그래머스] [PCCP 기출문제] 3번 / 충돌위험 찾기 코드 힌트큐(Queue)를 활용한 경로 추적:각 로봇의 이동 경로는 Queue 형태로 기록되며, 큐에 기록된 좌표를 순차적으로 꺼내어 로봇의 이동을 추적합니다.각 로봇이 특정 좌표에 도착하면, 그 좌표를 맵에 기록하고, 두 로봇 이상이 동일한 좌표를 지나간 경우를 찾아내는 방식입니다.위험 구역 계산:각 로봇의 다음 이동 위치를 확인하고, 101x101 크기의 이차원 배열을 사용해 해당 위치에 몇 개의 로봇이 지나갔는지 기록합니다.만약 두 개 이상의 로봇이 같은 위치를 지나가면 그 좌표는 위험 구역으로 간주되며, result 값을 증가시킵니다.경로 기록:각 로봇의 시작 좌표와 경로를 큐에 기록합니다.좌표 이동 방식은 먼저 y 좌표를 맞추고, 그 다음에 x 좌표를 맞추는 방식입니다. 이를 통해 로봇이 직선 ..
[백준] 뱀과 사다리 게임 (16928번) 코드 힌트입력 처리사다리와 뱀의 개수를 입력받고, 각 사다리와 뱀의 시작 위치와 도착 위치를 배열 board에 저장합니다. 사다리와 뱀은 동일한 방식으로 처리됩니다.보드 초기화board 배열에서 시작 위치에 도착 위치가 설정되지 않은 경우, 그 위치는 자기 자신으로 설정하여 기본 이동을 가능하게 합니다. 이는 뱀이나 사다리가 없는 경우입니다.BFS 탐색큐를 사용하여 BFS(너비 우선 탐색) 방식으로 게임 보드를 탐색합니다. 큐에는 현재 위치와 그 위치에 도달하기 위한 이동 횟수를 저장합니다.주사위의 결과(1~6)를 기반으로 다음 위치를 계산하고, 해당 위치가 아직 방문하지 않았다면 큐에 추가합니다.종료 조건위치가 100에 도달했을 때, 이동 횟수를 비교하여 최소값을 업데이트합니다. BFS 특성상, 처음으..

728x90