본문 바로가기

전체 글53

[그리디] Kakao - 두 큐 합 같게 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/118667#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 알고리즘 개념 - 그리디 탐욕 알고리즘은 최적해를 구하는 데에 사용되는 근사적인 방법으로,여러 경우 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달 합니다. ->while(true)로 돌면서 제약조건을 걸어 최적의 해를 도출한다. 문제 해결 - 최적해를 구하기 위한 결정 포인트 정리 1. 모든 원소의 합이 홀수인.. 2024. 3. 18.
[유클리드 호제법] 숫자 카드 나누기 https://school.programmers.co.kr/learn/courses/30/lessons/135807 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr class Solution { public int solution(int[] arrayA, int[] arrayB) { int answer = 0; int gcdA = arrayA[0]; int gcdB = arrayB[0]; // 최대 공약수 구하기 for(int i=1;i 2024. 3. 17.
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.