목록2024/04 (15)
쌓고 쌓다
아래의 Dockerfile을 만들어 주자. FROM openjdk:17 ARG JAR_FILE=build/libs/spotServer-0.0.1-SNAPSHOT.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java", "-jar", "/app.jar"] COPY : ${JAR_FILE}를 도커 이미지의 ./app.jar 경로에 복사한다. ENTRYPOINT : Docker 컨테이너가 시작될때 실행되는 명령을 지정한다. 그리고 로컬에서 빌드한다. 테스트 코드는 빌드에서 제외하기 위해 -x test를 추가해주었다. ./gradlew build -x test 빌드한 파일은 JAR_FILE 경로에 존재하게 된다. 그리고 다음 명령어를 실행하자. docker build --platf..
https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 장르별 총 재생 횟수 Map을 이용해 장르별 총 재생 횟수를 기록 -> genresCnt 장르별 총 재생 횟수를 기록할때, 장르별 노래 Map에 노래 저장 -> genresSong 장르별 총 재생 횟수 Map을 재생 횟수로 정렬 -> List genre genre를 순차적으로 탐색하며 genresSong에서 노래 목록을 조건에 맞춰 정렬 -> songs songs에서 노래를 두개 꺼내 ..
원하는기능은 다음과 같았다. 게시글과 댓글은 일대다 관계이고 작성한 댓글의 게시글을 중복없이 최근에 작성한 댓글의 게시글이 먼저 오도록 정렬하는 QueryDSL을 작성하길 원했다. 처음에 QueryDSL을 사용하다가 다음과 같은 코드를 작성했었다. List posters = jpaQueryFactory .select(new QPosterResponse( poster.id, poster.writer.id, poster.writer.name, poster.title, poster.content, poster.regDate, ExpressionUtils.as( JPAExpressions .select(posterLike.count()) .from(posterLike) .where(posterLike.poste..
https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 Lv.3 단계라 다들 BFS는 잘 이해하고 있을 것이다. BFS로 풀었다. 핵심은 문자 하나를 바꿔서 탐색이 가능한 word라 하더라도 최소가 되는 비용으로 탐색이 가능할때 큐에 삽입하는 것이다. 왜냐 탐색 비용이 최소가 될 수 없는데 탐색하는 것은 최소 값을 구하는 문제에서 의미없는 탐색이기 때문이다. 전체 코드 import java.util.*; class Solution { cla..
https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 프로그래머스 lv.3 단계 문제라 다들 DFS는 잘 알고 있을거라... 설명은 생략하고 간단히 처음 방문하는 노드라면 DFS를 통해 쭉 연결된 모든 노드를 방문하고 answer + 1을 해주면 된다. 전체 코드 import java.util.*; class Solution { public void dfs(int[][] computers, boolean visit[], int idx) {..
https://school.programmers.co.kr/learn/courses/30/lessons/12902#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 n이 홀수일때는 만들 수 없다. 0가지이다. n이 2일때 위와 같이 3개가 존재한다. n이 4일때 n이 2인 타일 모양에다가 또 n이 2일때 타일들을 붙여 n이 4인 타일을 완성할 수 있다. 여기에 특수한 모양의 2가지가 더 추가된다. 여기서 n이 4일때 answer를 수식으로 구하면 f(4) = f(2) * 3 + 2가 된다. f(4)에서 길이 2를 뺀 f(2)에서 길이 2짜..
https://school.programmers.co.kr/learn/courses/30/lessons/181188# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 e를 기준으로 정렬을 합니다. 순차적으로 방문하며 다음 과정을 거칩니다. 다음 미사일의 s가 현재 요격한 미사일의 e보다 크거나 같다면 새로운 요격 미사일이 필요합니다. 다음 미사일의 s가 현재 요격한 미사일의 e보다 작다면 앞서 요격한 미사일(현재 요격한 미사일) 때 사용한 요격 미사일로 막을 수 있습니다. 전체 코드 #include #include #include using na..