문제 정보는 아래 링크를 확인해주세요! [지형 이동] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 방법 - 현재 지형과의 차이가 height 이하인 연결된 지형들을 구역으로 그룹화 - 각 칸의 상,하,좌,우로 연결이 안된 지형들과의 차이를 리스트에 담는다. - 지형들간의 차이가 담겨있는 리스트를 지형 차이-현재-다음 구역 순으로 정렬 - 지형 차이가 최소인 값부터 두 지형의 구역을 하나로 만들어준다. - 해당 최소 값은 결과 값에 추가한다. - MST에 대한 지식이 있다면, 문제 접근이 빠를 것이다. [소스코드] import java.util..
자바
문제 정보는 아래 링크를 확인해주세요! [징검다리 건너기] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근방법 - 나니즈 친구들이 최대로 징검다리를 건널 수 있는 경우는 처음 징검다리부터 k개의 연속된 징검다리 집합 {1~k} 두번째 징검다리부터 k개의 연속된 징검다리 집합 {2~k} n-k번째 징검다리부터 k개의 연속된 징검다리 집합 {n-k~k}가 있고, - 이 집합 안에서 최댓값을 구해주고, 집합의 최댓값과 다른 집합의 최댓값을 비교해서 최솟값을 구해주는 것이 문제 접근 방법이다. - k개의 징검다리를 건널 수 있기 때문에 건널 수 있는 징..
문제 정보는 아래 링크를 확인해주세요! [호텔 방 배정] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 문제를 풀었을 때는 효율성 테스트라는 것을 인지하고 다음과 같이 접근했었다. - 등록된 룸 넘버를 저장할 객체인 HashSet과 - 등록되지 않은 룸 넘버를 저장할 객체인 ArrayList(k만큼의 번호를 초기화) - HashSet을 검사해서 포함되어 있다면, ArrayList에서 해당 룸 넘버 다음 인덱스를 결과 값에 넣어주고 - 포함되어있지 않다면, 해당 룸 넘버를 ArrayList에서 지워주고 결과 값에 넣어준다. - ArrayList에서 해..
문제에 대한 정보는 아래 링크 확인 부탁드립니다! [크레인 인형뽑기 게임] 문제 접근 방법 - 칸마다 가장 위에 있는 인형이 있는 행의 위치를 배열로 저장 - 크레인 작동마다 인형을 뽑아 스택에 쌓아 둔다. - 여기서 크레인으로 뽑은 인형이 스택의 맨 위에 있는 인형과 비교 후 결과 값에 추가 - 뽑은 인형 자리는 0으로 만들어준다. - 위 두 과정을 반복 코드 package algorithm.programmers; import java.util.*; /* * 프로그래머스 2019 카카오 개발자 겨울 인턴십 * 크레인 인형 뽑기 문제 * */ public class Pro64061 { private static int[][] board; public static int findMaxRow(int move..
문제에 대한 정보는 아래 링크에서 확인 부탁드립니다. [튜플 문제정보] 문제에 대한 접근 방법 - 튜플 정보들은 이중 중괄호와 콤마로 구분된 '문자열'이다. - 튜플은 '순서'가 정해져있고, '중복이 없는' 집합이다. - 튜플의 순서를 알 수 있는 방법은 튜플 집합 중 사이즈가 작은 순으로 정렬한 후 이전 튜플의 요소를 제거하면서 진행하는 방법이다. 예를 들어, "{{2},{2,1},{2,1,3},{2,1,3,4}}"와 같은 요청이 들어왔을 때, 튜플의 가장 작은 사이즈인 {2}부터 {2,1} 순으로 정렬을 한 후 {2}의 요소를 {2,1}에서 제거하고, {2,1,3}에서 {2,1}의 요소를 제거하는 식으로 진행했다. 제거한 요소들은 리스트에 넣고, 마지막에 배열로 변환하여 리턴하면 끝! package ..
기존에 jdbc+Mybatis를 통하여 개발 프로젝트를 만들다가 JPA를 공부하면서 까먹지 않기 위해 블로그에 기록해 놓았다. 우선 간략하게 JPA를 소개하면, JPA는 기존의 RDB 방식에서 벗어나 ORM을 통해 객체 지향적인 테이블 설계가 가능하고, 기존의 SQL Query가 아닌 method를 통해 직관적인 데이터 조작이 가능하다. JPA의 가장 큰 특징은 아무래도 기존에 데이터를 전달하는 목적(DTO,VO)으로 사용했던 Mybatis와는 달리 객체 지향의 장점(캡슐화,추상화,상속 등의 다형성)을 살릴 수 있다는 것이다. 지금은 환경설정에 대한 글이므로, 자세한건 다음번에 이론을 정리할 때 써야겠다.. - 우선 프로젝트를 새로 만든다면, [New] -> [spring starter project] ..
스프링 부트에서 hibernate 와 JPA 사용 도중 아래와 같은 에러 메세지가 발생. No default constructor for entity 알고보니 해당 Entity에 default constructor를 안만들어줬었다..
스프링 부트 2.1 버전부터는 Bean Override 기능이 불가능하다고한다. 나의 경우 인코딩 설정을 'UTF-8'로 설정을 해주려고 Bean을 등록하던 도중 아래와 같은 에러 코드가 발생하였다. The bean 'characterEncodingFilter', defined in class path resource 위와 같은 Bean 설정 오류가 발생하였을 때는 스프링 설정 파일 [.properties]에 아래와 같이 작성하자 spring.main.allow-bean-definition-overriding=true