분류 전체보기 133

[프로그래머스] 리코쳇 로봇 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요이 문제는 리코쳇 로봇이라는 보드게임을 기반으로 하고 있습니다. 게임의 목표는 격자 모양의 게임판에서 주어진 위치에 있는 로봇("R")을 특정 목표 위치("G")로 이동시키는 것입니다.규칙로봇은 한 번에 상, 하, 좌, 우 방향 중 하나로 움직이며 장애물("D")이나 게임판 가장자리에 닿기 전까지 멈추지 않습니다."R"에서 "G"로 도달하기 위해 필요한 최소 이동 횟수를 계산합니다.목표 지점에 도달할 수 없을 경우 -1을 반환합..

[ODOQ] 엔티티 매니저란?

[One Day One Question]엔티티 매니저란?엔티티 매니저(Entity Manager)는 JPA(Java Persistence API)에서 제공하는 핵심 인터페이스로, 엔티티와 데이터베이스 간의 상호작용을 관리하는 역할을 합니다. 엔티티 매니저를 통해 애플리케이션은 데이터베이스와의 CRUD(Create, Read, Update, Delete) 작업을 수행할 수 있습니다.주요 기능 및 역할엔티티 생명주기 관리엔티티 매니저는 엔티티의 상태(비영속, 영속, 준영속, 삭제)를 관리합니다.비영속(New/Transient): 엔티티가 영속성 컨텍스트에 포함되지 않은 상태.영속(Managed): 영속성 컨텍스트에서 관리되는 상태.준영속(Detached): 영속성 컨텍스트에서 분리된 상태.삭제(Removed..

cs/ODOQ 2024.11.22

Priority Queue(우선순위 큐)

우선순위 큐(Priority Queue)란?우선순위 큐(Priority Queue)는 각 요소가 특정 우선순위를 가지며, 가장 높은 우선순위를 가진 요소가 먼저 처리되는 자료 구조입니다. 일반적인 큐(First In, First Out)와는 달리, 요소가 삽입된 순서와 관계없이 우선순위에 따라 요소를 꺼냅니다. 우선순위 큐의 특징정렬된 요소 접근:기본적으로 최소 힙(Min-Heap) 구조를 사용하여 오름차순으로 요소를 정렬합니다.요소를 꺼낼 때마다 현재 큐에서 가장 작은 값이 반환됩니다.시간 복잡도:삽입(offer) 및 제거(poll) 연산: O(log⁡n)최댓값 또는 최솟값 조회(peek): O(1)구현 방식:내부적으로 이진 힙(Binary Heap)을 기반으로 동작합니다. 우선순위 큐기본 우선순위 큐..

cs/자료구조 2024.11.22

[프로그래머스] 디펜스 게임 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/142085 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요디펜스 게임은 준호가 병사 n명으로 적의 공격을 막는 게임입니다. 게임의 규칙은 다음과 같습니다:병사 소모: 매 라운드마다 enemy[i]마리의 적이 등장하며, 이를 막기 위해 enemy[i]명의 병사가 소모됩니다.병사 부족 시 게임 종료: 만약 남은 병사 수가 등장한 적의 수보다 적다면 게임은 종료됩니다.무적권 사용: 무적권을 사용하면 병사를 소모하지 않고 한 라운드를 막을 수 있습니다. 무적권은 최대 k번 사용할 수 있습니다..

[프로그래머스] [PCCE 기출문제] 10번 / 데이터 분석 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/250121 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요현식이는 주어진 데이터를 분석하고, 특정 조건을 만족하는 데이터를 필터링하고 정렬하는 작업을 진행하고 있습니다. 주어진 데이터는 각 행이 네 개의 값으로 이루어져 있으며, 각 값은 "코드 번호(code)", "제조일(date)", "최대 수량(maximum)", "현재 수량(remain)" 을 의미합니다. 현식이는 이 데이터를 기반으로 다음과 같은 작업을 해야 합니다:특정 열(ext 기준)의 값이 주어진 기준값(val_ext)보..

[ODOQ] JPA의 ddl-auto 옵션

[One Day One Question]JPA의 ddl-auto 옵션은 각각 어떤 동작을 하고 어떤 상황에서 사용해야 할까요? JPA의 ddl-auto 옵션은 Hibernate에서 데이터베이스 스키마를 어떻게 관리할지를 설정하는 옵션입니다. 이 옵션은 application.yml 또는 application.properties 파일에서 설정하며, 다양한 환경에서 유용하게 사용할 수 있습니다.주요 옵션과 동작none동작: JPA가 데이터베이스 스키마 생성이나 수정 작업을 수행하지 않음.사용 상황: 이미 정의된 스키마를 사용하고, 애플리케이션이 데이터베이스 스키마를 변경하지 않아야 하는 프로덕션 환경.validate동작: 엔티티와 데이터베이스 스키마가 일치하는지 검증.사용 상황: 스키마는 외부에서 생성하고, ..

cs/ODOQ 2024.11.22

[프로그래머스] [PCCP 기출문제] 2번 / 석유 시추 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요문제는 세로 n, 가로 m의 격자에서 석유가 묻힌 땅을 분석하여, 수직으로 한 줄 시추관을 설치했을 때 뽑을 수 있는 석유량이 최대가 되는 위치를 찾는 것입니다.석유는 상하좌우로 연결된 1의 집합(덩어리)로 표현됩니다. 시추관이 지나는 열에서 해당 석유 덩어리에 포함된 모든 석유를 뽑을 수 있습니다.최종적으로, 각 열에 대해 가능한 석유량을 계산하고 그중 최대값을 반환합니다. 접근 방법1. 덩어리 구분 및 크기 계산주어진 격자 ..

[ODOQ] Spring Data JPA에서 새로운 Entity인지 판단하는 방법

[One Day One Question]Spring Data JPA에서 새로운 Entity인지 판단하는 방법은? 1. @Id 필드를 기준으로 판단JPA는 엔티티의 @Id 필드가 null이거나 기본값일 경우, 해당 엔티티를 새로운 엔티티로 간주합니다.엔티티가 영속성 컨텍스트에 존재하지 않고 @Id 필드가 null인 경우, 새로운 엔티티로 판단합니다.public boolean isNew(Entity entity) { return entity.getId() == null; // ID가 null이면 새로운 엔티티로 간주} 2. Persistable 인터페이스 구현@Id 필드가 null이 아닌 경우에도 새로운 엔티티로 취급해야 할 상황(예: ID가 수동으로 생성되는 경우)이 있을 수 있습니다.이런 경우, 엔..

cs/ODOQ 2024.11.21

[프로그래머스] 혼자 놀기의 달인 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/131130 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요범희는 1부터 100까지의 숫자가 적힌 카드로 혼자 게임을 즐깁니다. 게임은 숫자 카드가 담긴 상자들을 무작위로 배치하고, 특정 상자를 선택하여 안의 숫자를 확인한 뒤, 그 숫자에 해당하는 상자를 열어가며 진행됩니다. 이미 열린 상자를 만나면 하나의 그룹이 형성되며, 같은 방식으로 다른 그룹을 만들어갑니다. 상자들은 모두 두 개의 그룹으로 나뉘며, 각 그룹의 크기를 곱한 값이 게임의 점수가 됩니다. 주어진 카드 번호 배열 car..

[프로그래머스] 혼자서 하는 틱택토 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/160585 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요틱택토 게임을 혼자서 진행하던 머쓱이가 규칙을 어겼는지 판단하기 위해, 현재 게임판이 규칙에 맞는 상태인지 확인하는 문제입니다. 게임판을 나타내는 문자열 배열 board가 주어질 때, 규칙에 맞는 상태라면 1을, 그렇지 않으면 0을 반환하는 solution 함수를 작성하는 문제입니다.규칙 위반 조건:"O"와 "X"의 순서가 맞지 않은 경우 ("O" 차례에 "X"가 표시되거나 그 반대).승리 조건이 충족되어 게임이 종료되어야 하는..