[백준] 12100 2048 Easy (JAVA)
·
코딩 테스트
문제 링크:12100번: 2048 (Easy) 문제:2048 게임은 4×4 크기의 보드에서 혼자 즐기는 재미있는 게임이다.이 게임에서 한 번의 이동은 보드 위에 있는 전체 블록을 상하좌우 네 방향 중 하나로 이동시키는 것이다. 이때, 같은 값을 갖는 두 블록이 충돌하면 두 블록은 하나로 합쳐지게 된다. 한 번의 이동에서 이미 합쳐진 블록은 또 다른 블록과 다시 합쳐질 수 없다. (실제 게임에서는 이동을 한 번 할 때마다 블록이 추가되지만, 이 문제에서 블록이 추가되는 경우는 없다) 입력:첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2보다 크거..
[QueryDSL] 정렬과 페이징
·
QueryDSL
데이터가 많아질수록 정렬과 페이징은 필수적인 기능이다.이번 장에서는 QueryDSL을 활용해 정렬(orderBy)과 페이징(offset, limit)을 처리하는 방법과 페이징 실제 예시를 알아볼 것이다. 1. 정렬 — orderBy()다음 조건으로 회원을 정렬한다고 가정하자.나이는 내림차순(desc)이름은 오름차순(asc)이름이 없는(null) 회원은 마지막에 정렬(nullsLast)@Testpublic void sort() { em.persist(new Member(null, 100)); em.persist(new Member("member5", 100)); em.persist(new Member("member6", 100)); List result = queryFactory ..
[QueryDSL] 결과 조회
·
QueryDSL
QueryDSL로 쿼리를 작성할 때 마지막에 붙는 fetch(), fetchOne(), fetchFirst(), fetchResults(), fetchCount() 등의 메서드는 결과를 어떻게 가져올지를 결정한다.이번 글에서는 각 메서드의 차이와 실제 동작 방식을 코드와 함께 정리해본다. fetch() - 리스트 조회List result = queryFactory .selectFrom(member) .fetch();결과를 리스트로 반환한다.조회 결과가 없으면 빈 리스트([])를 반환한다.JPQL의 getResultList()와 동일한 개념이다.가장 일반적으로 사용되는 조회 메서드다. fetchOne() - 단건 조회Member findMember = queryFactory ..
[백준] 14889 스타트와 링크 (JAVA)
·
코딩 테스트
문제 링크:14889번: 스타트와 링크 난이도: 실버 1 문제:오늘은 스타트링크에 다니는 사람들이 모여서 축구를 해보려고 한다. 축구는 평일 오후에 하고 의무 참석도 아니다. 축구를 하기 위해 모인 사람은 총 N명이고 신기하게도 N은 짝수이다. 이제 N/2명으로 이루어진 스타트 팀과 링크 팀으로 사람들을 나눠야 한다. BOJ를 운영하는 회사 답게 사람에게 번호를 1부터 N까지로 배정했고, 아래와 같은 능력치를 조사했다. 능력치 Sij는 i번 사람과 j번 사람이 같은 팀에 속했을 때, 팀에 더해지는 능력치이다. 팀의 능력치는 팀에 속한 모든 쌍의 능력치 Sij의 합이다. Sij는 Sji와 다를 수도 있으며, i번 사람과 j번 사람이 같은 팀에 속했을 때, 팀에 더해지는 능력치는 Sij와 Sji이다. N..
[백준] 17144 미세먼지 안녕! (JAVA)
·
코딩 테스트
문제 링크:17144번: 미세먼지 안녕! 난이도: 골드4 문제:미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사과는 뛰어난 코딩 실력을 이용해 각 칸 (r, c)에 있는 미세먼지의 양을 실시간으로 모니터링하는 시스템을 개발했다. (r, c)는 r행 c열을 의미한다. 공기청정기는 항상 1번 열에 설치되어 있고, 크기는 두 행을 차지한다. 공기청정기가 설치되어 있지 않은 칸에는 미세먼지가 있고, (r, c)에 있는 미세먼지의 양은 Ar,c이다.1초 동안 아래 적힌 일이 순서대로 일어난다.미세먼지가 확산된다. 확산은 미세먼지가 있는 모든 칸에서 동시에 일어난다.(r, c..
[백준] 1700 멀티탭 스케줄링 (JAVA)
·
코딩 테스트
문제 링크:1700번: 멀티탭 스케줄링 난이도: 골드 1 문제:기숙사에서 살고 있는 준규는 한 개의 멀티탭을 이용하고 있다. 준규는 키보드, 헤어드라이기, 핸드폰 충전기, 디지털 카메라 충전기 등 여러 개의 전기용품을 사용하면서 어쩔 수 없이 각종 전기용품의 플러그를 뺐다 꽂았다 하는 불편함을 겪고 있다. 그래서 준규는 자신의 생활 패턴을 분석하여, 자기가 사용하고 있는 전기용품의 사용순서를 알아내었고, 이를 기반으로 플러그를 빼는 횟수를 최소화하는 방법을 고안하여 보다 쾌적한 생활환경을 만들려고 한다.예를 들어 3 구(구멍이 세 개 달린) 멀티탭을 쓸 때, 전기용품의 사용 순서가 아래와 같이 주어진다면,키보드헤어드라이기핸드폰 충전기디지털 카메라 충전기키보드헤어드라이기키보드, 헤어드라이기, 핸드폰 충..