본문 바로가기

전체 글63

int형 2차원 배열 복합정렬조건 https://school.programmers.co.kr/learn/courses/30/lessons/147354 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 위 문제의 경우 1. 조건에 맞게 2차원 배열 sorting 2. 해당 튜플의 모든 인자값을 mod로 계산해 누적합 구하고, 이들을 List 배열에 저장 3. List에 저장되어 있는 mod의 누적합 값들 XOR 연산 후 값 반환 세가지 순서로 진행했다. 여기서 주의해야 할 점은 복합 정렬에 조건을 람다식으로 표현하는 것이다. 아래의 코드를 살펴보자 //튜플의 col 번째 컬럼값 기준으로 오름차.. 2024. 3. 16.
List를 pageable과 PageImpl로 구현하기 - List Paging 페이징을 쓰는 경우는 1번 case가 대부분이며 가장 이상적이다. 1. querydsl의 fetch()와 countQuery.size()로 가져오기. (가장 이상적) 아래 코드처럼 fetchResults( )를 하면, content를 위한 쿼리 1번 + total을 위한 쿼리 1번 총 2번의 쿼리를 날린다. public Page searchPageComplex(MemberSearchCondition condition, Pageable pageable) { //Contents 만을 위한 쿼리 List content = queryFactory .select(new QMemberTeamDto( member.id, member.username, member.age, team.id, team.name)) .fro.. 2024. 3. 15.
[Kakao] 가장 많이 받은 선물 https://school.programmers.co.kr/learn/courses/30/lessons/258712 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 위 문제를 풀면서 1. 이름들로 배열이 표현 될 경우, HashMap을 통해 이름(String) - 인덱스(value) 형태로 저장 후, value값인 인덱스를 array로 표현할 때 인덱스를 사용해본다. 이렇게 하면, 이름 -> 인덱스 -> 배열의 인덱스 로 사용이 가능해 표현이 더 간결해진다. 이 문제를 보고 기억해야 할 포인트는 두가지 이다. 1. 두 사람이 선물을 주고받은 기록이 있다면,.. 2024. 3. 15.
[Kakao] "년/월/일" 날짜 문제 "일"로 모두 환산하기 https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 먼저 이 문제를 풀기 위해서 생각한 점은, 1. terms(약관)에 저장된 값을 key-value의 형태로 map에 저장해 key(A)값을 이용해서 value(6)인 유효기간을 가져온다. 2. 년/월/일의 형식을 지키려면 복잡하고 배열공간도 많이 요구되므로 "년/월/일" -> "일" 로 환산해서 계산한다. 3. 문자열을 마침표('.')로 구분하여 자르기 위해 str.split(".")을 이용할 .. 2024. 3. 14.
[BFS] 리코쳇 로봇 https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 요약 간단히 요약하자면, 처음 위치 R에서 목표 지점 G까지 최소 움직임을 구하는 문제다. 단 이동 할 때 한 칸씩 이동하는 게 아니라 장애물 D 이거나 board 보드를 벗어나기 전까지 멈추지 않고 쭈욱 이동한다고 보면 된다. 이때 G까지 가는 최소 움직임을 return 해주면 된다. 해설 우선, 최소 이동거리를 보장해야 하기 때문에, 너비 우선 탐색(BFS)을 사용하면 효율적이다. 이전.. 2024. 3. 7.
[BFS] 미로 탈출 Lv.2 https://school.programmers.co.kr/learn/courses/30/lessons/159993 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 1 x 1 크기의 칸들로 이루어진 직사각형 격자 형태의 미로에서 탈출하려고 합니다. 각 칸은 통로 또는 벽으로 구성되어 있으며, 벽으로 된 칸은 지나갈 수 없고 통로로 된 칸으로만 이동할 수 있습니다. 통로들 중 한 칸에는 미로를 빠져나가는 문이 있는데, 이 문은 레버를 당겨서만 열 수 있습니다. 레버 또한 통로들 중 한 칸에 있습니다. 따라서, 출발 지점에서 먼저 레버가 있는 칸으로.. 2024. 3. 6.