[Java] 프로그래머스 : K번째 수 https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 처음에 commands의 각 요소들이 두자리 수 이상의 정수가 온다는 것을 인지하지 못하고 String으로 변환하여 substring으로 잘라내다가 2, 6번 케이스에서 오류가 났었다. array가 [1, 5, 2, 6, 3, 7, 4]와 같은 경우, String으로 변환하면 1526374가 되고 필요한 부분을 잘라 각각을 정수로 다시 변환하여 k번째 ..
[Java] 백준 2206 : 벽 부수고 이동하기 https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 접근 일반적인 bfs 방문체크에서 벽을 부수는 것을 옵션으로 추가해야하는 문제이다. visted를 3차원 배열로 선언하여, x, y축과 벽을 부섰는지의 여부를 체크할 수 있도록 구현했다. 최초 방문체크를 할 때 벽을 아예 부수지 않는 탐색자와 벽을 한 번 부술 수 있는 탐색자로 나눈다. visited[x][y][0] = t..
[Java] 백준 14226 : 이모티콘 https://www.acmicpc.net/problem/14226 14226번: 이모티콘 영선이는 매우 기쁘기 때문에, 효빈이에게 스마일 이모티콘을 S개 보내려고 한다. 영선이는 이미 화면에 이모티콘 1개를 입력했다. 이제, 다음과 같은 3가지 연산만 사용해서 이모티콘을 S개 만 www.acmicpc.net 접근 1. 화면에 있는 이모티콘을 모두 복사해서 클립보드에 저장한다. 2. 클립보드에 있는 모든 이모티콘을 화면에 붙여넣기 한다. 3. 화면에 있는 이모티콘 중 하나를 삭제한다. 화면에 있는 이모티콘의 수를 x, 클립보드에 있는 이모티콘의 수를 y라고 가정한다. 복사 -> 클립보드 저장의 경우: [x, y] -> [x, x] 붙여넣기의 경우: [x, y] -..
[Springboot] 스프링부트 2.7 이상 QueryDsl build.gradle 설정 필요한 부분만 작성했습니다. buildscript { ext { queryDslVersion = "5.0.0" } } plugins { id 'java' id 'war' id 'org.springframework.boot' version '2.7.13' id 'io.spring.dependency-management' version '1.0.15.RELEASE' id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10' } group = 'org.zerock' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '11' } c..
Failed to initialize JPA EntityManagerFactory: No identifier specified for entity 에러 해결법 Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: No identifier specified for entity 위와 같은 오류가 발생했을 경우, ..
[Java] 백준 1987 : 알파벳 알파벳 적힌 칸을 한 번씩만 지나서 최대한 몇 칸을 움직일 수 있는가를 구현한다. DFS로 구현할 경우, 각각의 루트에 대해서 지나갈 수 있는 값들 중 최댓값을 출력할 수 있도록 해야한다. 특정 루트에 대한 탐색이 끝나면 다음 루트에 대한 탐색도 온전하게 진행되어야 하므로, dfs의 재귀가 끝날 때 해당 알파벳에 대한 방문 처리를 초기화 해주어야 한다. 방문 처리를 초기화 해주지 않으면 다음 루트에 대한 탐색에 문제가 생기기 때문이다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; publ..