| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- AWS
- 42서울
- NAT gateway
- 인프라
- 전국대학생게임개발동아리연합회
- 체크인미팅
- 개발공부
- bastion host
- 오블완
- 프리티어
- Spring boot
- 도커
- 프로그래밍
- openAI API
- Redis
- Route53
- 라피신
- UNICON
- UNIDEV
- 스프링부트
- UNICON2023
- EC2
- 백엔드개발자
- 프롬프트엔지니어링
- spring ai
- 티스토리챌린지
- CICD
- 게임개발동아리
- 생활코딩
- 캡스톤디자인프로젝트
- Today
- Total
목록Study (116)
Hyun's Wonderwall
6장 열거 타입과 애너테이션 (2/2)아이템 37. ordinal 인덱싱 대신 EnumMap을 사용하라EnumMap: 열거 타입을 키로 사용하도록 설계한 아주 빠른 맵 구현체- 내부에서 배열을 사용해 빠름..- EnumMap의 생성자가 받는 키 타입의 Class 객체는 한정적 타입 토큰. 런타임 제네릭 타입 정보를 제공.Map> plantsByLifeCycle = new EnumMap(LifeCycle.class); for (LifeCycle lc : LifeCycle.values()) { plantsByLifeCycle.put(lc, new HashSet()); // 빈 Set 초기화 } for (Plant p : garden) { ..
5장 제네릭 (2/2)아이템 28. 배열보다는 리스트를 사용하라배열와 제네릭 타입의 중요한 차이 2가지: 1. 배열은 공변이다. 2. 배열은 실체화된다. 1. 배열은 공변이다. - 배열: 공변 (variant, 함께 변한다.) (예로 Sub가 Super의 하위 타입이라면 Sub[]는 Super[]의 하위 타입)- 제네릭: 불공변 (invariant) (예로 Type1과 Type2가 있을 때, List은 List의 하위 타입도 상위 타입도 아니다.- 배열에서는 타입호환이 안 되는 곳에 넣는 실수를 런타임에서 알게 되는데(->ArrayStoreException), 리스트는 컴파일할 때 알게 되어 더 타입 안전한 프로그래밍을 할 수 있다. 2. 배열은 실체화된다.- 배열은 런타임에도 자신이 담기로 한 원소의 ..
"스파르타코딩클럽 작심큰일 챌린지" 3일차 챌린저 문제1781번: 컵라면https://www.acmicpc.net/problem/1781 문제상욱 조교는 동호에게 N개의 문제를 주고서, 각각의 문제를 풀었을 때 컵라면을 몇 개 줄 것인지 제시 하였다. 하지만 동호의 찌를듯한 자신감에 소심한 상욱 조교는 각각의 문제에 대해 데드라인을 정하였다.문제 번호 1 2 3 4 5 6 7데드라인 1 1 3 3 2 2 6컵라면 수 6 7 2 1 4 5 1위와 같은 상황에서 동호가 2, 6, 3, 1, 7, 5, 4 순으로 숙제를 한다면 2, 6, 3, 7번 문제를 시간 내에 풀어 총 15개의 컵라면을 받을 수 있다.문제는 동호가 받을 수 있는 최대 컵라면 수를 구하는 것이다. 위의 예에서는 15가 최대이다.문제를 푸는..
"스파르타코딩클럽 작심큰일 챌린지" 2일차 챌린저 문제1450번: 냅색문제https://www.acmicpc.net/problem/1450 문제세준이는 N개의 물건을 가지고 있고, 최대 C만큼의 무게를 넣을 수 있는 가방을 하나 가지고 있다.N개의 물건을 가방에 넣는 방법의 수를 구하는 프로그램을 작성하시오.입력첫째 줄에 N과 C가 주어진다. N은 30보다 작거나 같은 자연수, C는 109보다 작거나 같은 음이 아닌 정수이다. 둘째 줄에 물건의 무게가 주어진다. 무게도 109보다 작거나 같은 자연수이다.출력첫째 줄에 가방에 넣는 방법의 수를 출력한다.예제 입력 1 2 11 1예제 출력 1 3예제 입력 2 1 11예제 출력 2 2예제 입력 3 1 21예제 출력 3 2예제 입력 4 2 12 2예제 출력 4 ..
"스파르타코딩클럽 작심큰일 챌린지" 1일차 챌린저 문제16118번: 달빛 여우https://www.acmicpc.net/problem/16118문제관악산 기슭에는 보름달을 기다리는 달빛 여우가 한 마리 살고 있다. 달빛 여우가 보름달의 달빛을 받으면 아름다운 구미호로 변신할 수 있다. 하지만 보름달을 기다리는 건 달빛 여우뿐만이 아니다. 달빛을 받아서 멋진 늑대인간이 되고 싶어 하는 달빛 늑대도 한 마리 살고 있다.관악산에는 1번부터 N번까지의 번호가 붙은 N개의 나무 그루터기가 있고, 그루터기들 사이에는 M개의 오솔길이 나 있다. 오솔길은 어떤 방향으로든 지나갈 수 있으며, 어떤 두 그루터기 사이에 두 개 이상의 오솔길이 나 있는 경우는 없다. 달빛 여우와 달빛 늑대는 1번 나무 그루터기에서 살고 있다..
4장 클래스와 인터페이스 (2/2)아이템 19. 상속을 고려해 설계하고 문서화하라. 그러지 않았다면 상속을 금지하라.상속용 클래스는 재정의할 수 있는 메서드들을 내부적으로 어떻게 사용하는지(자기사용 패턴) 내부 구현 방식을 설명해 문서를 남겨야 한다.- @implSpec 태그 붙이면 javadoc이 Implementation Requirements 생성해준다 (메서드의 내부 동작 방식 설명.) 효율적인 하위 클래스를 만들 수 있도록 (클래스의 내부 동작 과정 중간에 끼어들 수 있는 훅을 잘 선별하여) 일수 메서드를 protected로 제공해야 할 수도 있다. (드물게는 protected 필드도) 문서화한 것은 그 클래스가 쓰이는 한 반드시 지켜야 한다. 그러지 않으면 내부 구현 방식을 믿고 활용하던 하위..
1715번: 카드 정렬하기https://www.acmicpc.net/problem/1715 문제정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장의 숫자 카드 묶음을 합치려면 50번의 비교가 필요하다.매우 많은 숫자 카드 묶음이 책상 위에 놓여 있다. 이들을 두 묶음씩 골라 서로 합쳐나간다면, 고르는 순서에 따라서 비교 횟수가 매우 달라진다. 예를 들어 10장, 20장, 40장의 묶음이 있다면 10장과 20장을 합친 뒤, 합친 30장 묶음과 40장을 합친다면 (10 + 20) + (30 + 40) = 100번의 비교가 필요하다. 그러나 10장과 40장을..
20366번: 같이 눈사람 만들래?https://www.acmicpc.net/problem/20366 문제언니! 똑...똑똑...똑똑! 같이 눈사람 만들래~? ♪언니 엘자와 동생 안나에게는 N개의 눈덩이가 있다. 각 눈덩이 i (1 ≤ i ≤ N)의 지름은 Hi 이다. 하나의 눈사람은 두 개의 눈덩이로 구성되며, 눈덩이 하나를 아래에 두고 그 눈덩이보다 크지 않은 다른 눈덩이를 쌓아올리는 방식으로 만들 수 있다. 이때, 눈사람의 키는 두 눈덩이 지름의 합과 같다.엘자와 안나는 눈덩이 N개 중 서로 다른 4개를 골라서 눈사람을 각각 1개씩, 총 2개를 만들려고 한다. 두 자매는 두 눈사람의 키의 차이가 작을수록 두 눈사람의 사이가 좋을 것이라고 믿는다. 우리는 엘자와 안나가 가장 사이좋은 두 눈사람을 만들..
