분류 전체보기

https://www.acmicpc.net/problem/15990백준 15990번: 1, 2, 3 더하기 5문제풀이위 문제는 1, 2, 3의 합으로 표현하는 모든 경우를 구하여야 합니다. 또한 같은 숫자를 연속해서 2번 이상 사용할 수 없습니다. 즉 마지막으로 사용한 숫자가 다시 연속으로 등장하면 안됩니다. 이 조건을 만족하기 위해 각 경우의 마지막으로 사용된 숫자를 명시적으로 관리해야 합니다. 이를 위해 2차원 배열을 사용해 dp[i][j]를 다음과 같이 정의합니다.dp[i][j]: i를 1, 2, 3의 합으로 나타날 때 마지막 숫자가 j인 경우의 수 🤔 왜 2차원 배열을 써야할까?마지막으로 사용된 숫자를 추척함으로써, 같은 숫자가 연속해서 등장하지 않도록 관리할 수 있으며, 이를 통해 결과를 계산..
https://www.acmicpc.net/problem/2563백준 2563번: 색종이문제 풀이가로와 세로 길이가 각각 100인 도화지가 있습니다. 이 도화지 위에 가로와 세로 크기가 각각 10인 색종이 N장을 붙입니다. 색종이는 도화지의 변과 평행하게 붙이며, 색종이가 겹칠 수 있습니다. 이 문제는 겹치는 부분을 고려하여 총 검은색 영역의 넓이를 계산하는 문제입니다. 수학적으로 푼다면 넓이를 계산하고 겹친 부분을 뺀다면 쉽게 구할 수 있으나, 해당 문제는 알고리즘으로 풀어야 합니다. 우선 도화지를 나타낼 배열을 [100][100] 크기로 생성합니다. 이때 타입은 boolean으로 하여 ture는 포함, false는 미포함으로 구분합니다.즉, 어떤 수 x, y에 대해 배열[x][y]가 true이면 그 ..
서론사이드 프로젝트를 진행하면서 전체 테스트 코드를 실행시켰더니 다음과 같은 예외가 발생하였습니다.💡 Caused by: org.springframework.beans.factory.support.BeanDefinitionOverrideException: Invalid bean definition with name 'jpaAuditingHandler' defined in null: Cannot register bean definition... 멀쩡하게 돌아가던 테스트가 안되니 식은 땀이 났고, 문제를 찾아보니 테스트 코드에 @EnableJpaAuditing를 붙여 발생한 해프닝이였습니다... BeanDefinitionOverrideException은 동일한 이름의 Bean이 여러 번 등록되려고 할 때 ..
프로젝트를 진행하면서 어느 순간 테스트 코드를 작성하고 실행하면 문제는 없었으나, 해당 경고 문구가 보이기 시작했습니다. 이는 javax.annotation.meta.When라는 속성이 런타임에서 열거형을 사용할 수 없기 때문에 발생한 문제로, JSR305를 추가하면 쉽게 해결할 수 있습니다. 저의 경우 @Nullable 애노테이션을 사용하면서 발생하였습니다. Google 버그 찾기 저장소에는 JSR305이 포함되어 있어 build.gradle에 dependcies 추가를 하면 쉽게 해결할 수 있습니다. gradleimplementation 'com.google.code.findbugs:jsr305:3.0.2'maven com.google.code.findbugs annotations 3..
· Java
일급 컬렉션(First Class Collection)일급 컬렉션은 단일 컬렉션(List, Set, Map 등)을 wrapping하면서, 그외 다른 멤버 변수가 없는 상태를 의미합니다.즉, 클래스에 필드가 하나만 있고, 해당 필드가 컬렉션을 참조하는 것을 말합니다. 아래의 컬렉션 코드를List payGroups = new ArrayList();payGroups.add("Shinhan");payGroups.add("Woori");payGroups.add("KB");다음과 같이 Wrpping 하는 것을 말합니다.public class PayGroups { private final List pays; public PayGroups(List pays) { this.pays = pays; ..
· Spring/JPA
querydsl 5.0java 17springboot 3.2.5build.gradle 설정complile querydslGradle tab → Tasks → other → compileJava (compileQuerydsl) Q Class 생성 위치build/generated/sources/annotationProcessor/*plugins { id 'java' id 'org.springframework.boot' version '3.2.5' id 'io.spring.dependency-management' version '1.1.4'}group = 'jpabook'version = '0.0.1-SNAPSHOT'java { sourceCompatibility = '17'}configurations { c..
https://school.programmers.co.kr/learn/courses/30/lessons/87390?language=java문제 설명 정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다. n행 n열 크기의 비어있는 2차원 배열을 만듭니다. i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다. 1행 1열부터 i행 i열까지의 영역 내의 모든 빈칸을 숫자 i로 채웁니다. 1행, 2행, ..., n행을 잘라내어 모두 이어 붙인 새로운 1차원 배열을 만듭니다. 새로운 1차원 배열을 arr이라 할 때, arr[left], arr[left+1], ..., arr[right]만 남기고 나머지는 지웁니다. 정수 n, left, right가 매개..
· ETC
Redis (Remote Dictionary Server)Redis는 원격(Remote)에 위치하며 프로세스가 실행되는 In-Memory 기반의 Dictionary(key-value) 구조 데이터 관리 서버 시스템입니다. 여기서 key-value 구조 데이터란 MySQL과 같은 관계형 데이터베이스가 아닌 비관계형 구조로, 데이터를 단순히 key-value 형태로 저장하는 방식을 의미합니다. 따라서 관계형 데이터베이스처럼 복잡한 쿼리 연산을 지원하지 않으나, 데이터의 고속 읽기와 쓰기에 최적화되어 있습니다. 이러한 이유로 Redis는 일종의 NoSQL 데이터베이스로 분류됩니다.더보기💡 NoSQL이란?NoSQL은 "Not Only SQL"의 약자로, 기존 관계형 데이터베이스(RDBMS) 보다 더 융통성 있..
Hui._.
'분류 전체보기' 카테고리의 글 목록