프로그래머스 42885번 - 구명보트 요구사항 1. 구명보트는 한 번에 최대 2명씩 탈 수 있고, 무게 제한도 있습니다. 2. 모든 사람을 구출하기 위해 필요한 구명보트 개수의 최솟값을 반환하라. 요구사항 분석 및 풀이과정 1. 직관적으로 생각해보자. 구명보트를 최소한으로 필요하려면 가장 무거운 사람부터 태워 보내야 제한된 무게의 구명보트에 최대 2명을 태울 수 있을 것 같다. 무게 순으로 사람들을 정렬하자. 2. 가장 무거운 사람을 태운다고 하면, 최대 2명을 태울 수 있기 때문에 남은 자리에 태울 수 있는 사람을 찾아본다. 3-1. 가능성이 높은 사람은 가장 무게가 작은 사람일 것이며 그 사람의 무게와 가장 무거운 사람의 무게가 구명보트의 제한을 넘지 않는지를 확인한다. 3-2. 제한을 넘는 다면, ..
프로그래머스 42746번 - 가장 큰 수 요구사항 1. 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 문자열로 바뀌어 반환하라. 요구사항 분석 및 풀이과정 1. 직관적으로 생각하면 된다. 예를 들어 6과 10을 붙이는 경우는 "610"과 "106"이다 "610"이 크므로 "610"으로 붙을 수 있게, 6이 10보다 앞에 있도록 정렬을 유지하면 된다. [6, 10, 2]를 대상으로 한번 직접 손으로 해보면 다음과 같습니다. 하지만 주의하여할 점이 있다. 결과를 문자열로 변환할 때 수의 왼쪽 첫 번째 자리 숫자가 0으로 시작하는 경우를 문자열로 변환하면 "0xx"가 되는데, 수에서 앞의 0은 아무런 의미가 없기 때문에 "0xx"는 숫자로 xx이고 문자열로 변환할 경우 "x..
이전 이야기 이전에는 우리가 작성한 객체를 엔티티로 식별되도록 JPA에게 알려주는 방법인 @Entity 애너테이션, 그리고 해당 엔티티가 매핑되는 테이블의 기본 키와 필드를 매핑하여주는 @Id 애너테이션, 엔티티가 매핑되는 테이블의 정보를 명시하는 @Table 애너테이션에 대해서 알아보았습니다. 필드와 칼럼 매핑 기본 키가 아닌 다른 필드들이 테이블의 칼럼과 매핑을 위해서 어떻게 JPA에게 정보를 제공할 수 있는지, JPA는 어떠한 방법을 제공하는지에 대해서 알아보도록 하겠습니다. 애너테이션 설명 @Column 필드와 칼럼을 매핑합니다. @Enumerated Enum 타입의 필드와 칼럼을 매핑합니다. @Temporal 날짜 타입의 필드를 칼럼과 매핑합니다. - java.util.Date 또는 java.u..
JPA의 역할 서로 다른 기반을 가진 두 시스템이 결합하기 위해서는 중간 다리 역할이 필요하며, JPA가 바로 그 역할이며, 존재의 이유라고 했습니다. 그러한 역할을 하기 위해서는 JPA는 양쪽 시스템에 대한 정보가 필요하며, 그 정보를 바탕으로 서로 다른 유형들을 적절하게 변환할 수 있게 됩니다. 여기서 말하는 정보는 객체의 필드의 타입(정수형, 실수형, 날짜형, ...), 테이블의 기본 키(PK), 인덱스 등이 존재한다면 해당 칼럼과 매핑될 객체의 필드를 말합니다. 엔티티(Entity)란 ? JPA는 엔티티라는 단위로 테이블을 식별하고 관리합니다. 엔티티는 대단한 것이 아니라 우리가 작성해야 하는 비즈니스 로직을 구현한 객체라고 생각하면 됩니다. 객체의 인스턴스는 테이블의 로우로 저장되는 것이죠. 우..
JPA에 대하여 JPA는 Java Persistence API의 약어입니다. Persistence는 "(없어지지 않고 오래 동안) 지속됨"이라는 뜻을 가지고 있는데, 많이 사용하는 표현으로는 영속성이라고 부릅니다. 뜻 그대로 없어지지 않고 오래 동안 지속이 된다는 의미입니다. 그러면 도대체 무엇을 오래 동안 지속하는 것일까, 우리가 작성하는 객체를 말합니다. 일반적으로 애플리케이션이 종료되면 우리가 생성한 객체들은 메모리에서 사라지게 되며, 더 이상 어디에도 존재하지 않습니다. 우리는 애플리케이션이 종료되더라도 다시 실행할 경우 이전 상태의 객체가 필요한 경우가 많습니다. 쉽게 말하면 우리가 작성하는 문서를 생각하면 됩니다. 문서 편집 애플리케이션이 종료된다고 해서 우리가 작성한 문서 내용들이 사라지게 ..
- Total
- Today
- Yesterday
- 비트연산
- 코딩인터뷰
- TDD
- k8s
- 오늘의집
- 카카오
- 문자열
- JPA
- 코드 스니펫
- 우선순위큐
- 스트림
- 스택
- 연결리스트
- 알고리즘
- 구현
- 프로그래머스
- dsu
- 회고
- BFS
- 탐욕법
- Java
- dp
- 쓰레드
- Uber
- sql
- set
- kotlin
- 정렬
- 해쉬
- dfs
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |