본문 바로가기

java

(77)
[프로그래머스/Java] 최대값과 최솟값 📚 최댓값과 최솟값 [JAVA] 프로그래머스 Level 2. 코딩테스트 연습 - 최댓값과 최솟값 | 프로그래머스 스쿨 (programmers.co.kr) 문제 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다. 제한사항 • s에는 둘 이상의 정수가 공백으로 구분되어 있습니다. 입출력 예 s return "1 2 3 4" "1 4" "-1 -2 -3 -4" "-4 -1" "-1 -1" "-1 -1" 문제 해결 방안 0부터 문자열의 길이만큼 ..
Querydsl NPE가 발생할 경우 개인 프로젝트의 조회 쿼리 작성 중에 NPE에러가 발생하게 됨으로써 이를 해결하기 위해 알게된 내용을 정리하여 작성한 글입니다. 1. 원인 조회 쿼리를 작성 중에 NPE 에러가 발생하였습니다. @Override public List getReservationConfirmExhibition(Long userId, ReservationStatus status) { return queryFactory.selectDistinct( Projections.bean(MyPageHomeDto.ReservationExhibition.class, payment.id, payment.exhibitionStock.exhibition.preImg, payment.exhiitionStock.exhibition.title, pay..
Querydsl에서 Cross Join이 발생할 경우 회사에서 Querydsl를 사용하던 중 DB결과가 느려 쿼리문을 확인해보니 Cross Join이 계속해서 발생하는 것을 확인하게 되었고 이를 해결하면서 얻은 정보를 작성한 글입니다. JPA 기반의 환경에서 Querydsl을 사용하여 Join 쿼리 작성시 Cross Join이 발생할 수 있습니다. Cross Join의 결과는 2개의 집합의생길 수 있는 모든 데이터의 조합 (M*N) 이 나오는 경우를 이야기 합니다. 해당 결과는 Inner Join보다 성능상 이슈가 발생하게 됩니다. 어떤 경우에 Cross Join이 발생하는지, 해결할 수 있는지 확인해보겠습니다. 1. 테스트 세팅 테스트를 위한 Entity User @Getter @Entity @Table(name = "member") @NoArgsCons..
[프로그래머스/Java] 신고 결과 받기 📚 신고 결과 받기 [JAVA] 프로그래머스 Level 1. 코딩테스트 연습 - 신고 결과 받기 | 프로그래머스 스쿨 (programmers.co.kr) 문제 (생략) 제한사항 (생략) 입출력 예 id_list report k result ["muzi", "frodo", "apeach", "neo"] ["muzi frodo","apeach frodo","frodo neo","muzi neo","apeach muzi"] 2 [2,1,1,0] ["con", "ryan"] ["ryan con", "ryan con", "ryan con", "ryan con"] 3 [0,0] 문제 해결 방안 소스 코드 import java.util.*; class Solution { public int[] solution(Str..
[프로그래머스/Java] 성격 유형 검사하기 📚성격 유형 검사하기 [JAVA] 프로그래머스 Level 1. 코딩테스트 연습 - 성격 유형 검사하기 | 프로그래머스 스쿨 (programmers.co.kr) 문제 (생략) 제한사항 (생략) 입출력 예 survey choices result ["AN", "CF", "MJ", "RT", "NA"] [5, 3, 2, 7, 5] "TCMA" ["TR", "RT", "TR"] [7, 1, 3] "RCJA" 문제 해결 방안 R,T, C,F, J,M, A,N을 각각 저장한다 값이 4보다 작을 경우에는 왼쪽 문자에 점수를 올리고, 클 경우에는 오른쪽 문자에 점수를 올린다 계산 후 RT, CF, JM, AN 로 비교한다. 소스 코드 import java.util.*; class Solution { public Stri..
[프로그래머스/Java] 햄버거 만들기 📚햄버거 만들기 [JAVA] 프로그래머스 Level 1. 코딩테스트 연습 - 햄버거 만들기 | 프로그래머스 스쿨 (programmers.co.kr) 문제 햄버거 가게에서 일을 하는 상수는 햄버거를 포장하는 일을 합니다. 함께 일을 하는 다른 직원들이 햄버거에 들어갈 재료를 조리해 주면 조리된 순서대로 상수의 앞에 아래서부터 위로 쌓이게 되고, 상수는 순서에 맞게 쌓여서 완성된 햄버거를 따로 옮겨 포장을 하게 됩니다. 상수가 일하는 가게는 정해진 순서(아래서부터, 빵 – 야채 – 고기 - 빵)로 쌓인 햄버거만 포장을 합니다. 상수는 손이 굉장히 빠르기 때문에 상수가 포장하는 동안 속 재료가 추가적으로 들어오는 일은 없으며, 재료의 높이는 무시하여 재료가 높이 쌓여서 일이 힘들어지는 경우는 없습니다. 예를 ..
[프로그래머스/Java] 신규 아이디 추천 📚신규 아이디 추천 [JAVA] 프로그래머스 Level 1. 코딩테스트 연습 - 신규 아이디 추천 | 프로그래머스 스쿨 (programmers.co.kr) 문제 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다. 다음은 카카오 아이디의 규칙입니다. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 아이디는 알파벳 소문자, 숫자, 빼기(``), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. 단, 마침표(.)..
[프로그래머스/Java] 크레인 인형뽑기 게임 📚크레인 인형뽑기 게임 [JAVA] 프로그래머스 Level 1. 코딩테스트 연습 - 크레인 인형뽑기 게임 | 프로그래머스 스쿨 (programmers.co.kr) 문제 (생략) 제한사항 board 배열은 2차원 배열로 크기는 "5 x 5" 이상 "30 x 30" 이하입니다. board의 각 칸에는 0 이상 100 이하인 정수가 담겨있습니다. 0은 빈 칸을 나타냅니다. 1 ~ 100의 각 숫자는 각기 다른 인형의 모양을 의미하며 같은 숫자는 같은 모양의 인형을 나타냅니다. moves 배열의 크기는 1 이상 1,000 이하입니다. moves 배열 각 원소들의 값은 1 이상이며 board 배열의 가로 크기 이하인 자연수입니다. 입출력 예 board moves result [[0,0,0,0,0],[0,0,1,0..