자연수 array nums1과 nums2 그리고 자연수 k가 주어질 때, {i_1, i_2, ..., i_k} 이렇게 k개의 index를 골라 다음을 계산한 것을 Subsequence Score라고 합니다.(nums1\[i_1] + ... + num1\[i_k]) \*
개인 프로젝트 중 JWT 인증방식을 사용하기 위해 인프런 무료 강의를 듣고 있습니다.로그인 쿼리를 받아 아이디와 비밀번호가 맞을 경우 토큰을 돌려주는 지점인데, 생각해보니 이제껏 비밀번호를 대조하는 로직은 작성한 적이 없습니다. 그저 config에서 BcryptPass
int array nums가 주어질 때, 더해서 0이 되는 세 개의 원소 조합들을 return하는 문제입니다. \*솔루션을 참고하여 작성했습니다.중복이 없도록 return 하라는 요구사항을 보고 set을 이용해 브루트포스로 풀면 통과는 되지만 매우 느립니다. 아예 중복
프로그래머스 - 할인 행사 마트에 회원으로 가입하면 10일간 하루에 1품목을 할인 행사가로 구입할 수 있습니다. 원하는 품목들의 모든 수량을 할인가에 사고 싶다고 할 때, 회원가입 가능한 날이 며칠 있는 지 구하는 문제입니다. 원하는 품목들의 array want와
주어진 숫자 카드 더미에서 가장 긴 두 cycle들의 길이를 곱해서 반환하는 문제입니다. cards를 읽으며 방문한 곳은 값을 0으로 변경합니다. 계속 방문하며 값이 0인 곳에 도달하면 한 cycle이 끝난 것입니다. 이런 식으로 cards를 모두 방문하며 제일 긴 c
내려오는 택배상자를 보조 컨베이어 벨트를 이용하여 order array에 주어진 순서에 맞게 몇 개까지 실을 수 있는지 구하는 문제입니다. 보조 컨테이너 벨트는 앞 뒤로 이동이 가능하지만 입구 외에 다른 면이 막혀 있어서 맨 앞의 상자만 뺄 수 있습니다라는 설정이 다소
주어진 원순열에서 부분수열의 합을 구합니다. 이 때 나올 수 있는 합의 개수를 구하는 문제입니다. 중복없이 개수를 구해야 하기 때문에 모든 합들을 set에 넣자는 아이디어를 떠올렸습니다. 또한 연속한 수열의 합이기 때문에 누적합을 이용하면 반복적인 계산을 생략할 수 있
주어진 정수 k를 가지고 콜라추 추측을 이용해 만든 수열을 선으로 이어 그래프를 그립니다. (링크 : 콜라츠 추측)이 때 주어진 ranges array의 range별 정적분 값을 return하는 문제입니다.정적분은 넓이와 같기 때문에 수열을 만들어가며 넓이를 구하는 아
주어진 세 종류의 타일로 n x 3 직사각형을 채우는 문제입니다. 흔한 dp 문제 유형같지만 타일 종류가 좀 특이해서 경우의 수가 많이 나옵니다.저는 우선 n x 3을 왼쪽 m x 3과 오른쪽 k x 3인 직사각형(m + k = n) 둘로 쪼개는 아이디어를 생각했습니다
폭격 미사일들을 최소한의 비용으로 요격하는 문제입니다. 자세한 내용은 위의 링크를 참고하시기 바랍니다.미사일들의 끝점을 기준으로 정렬합니다. 순서대로 읽어가면 시작점이 현재 미사일의 끝점보다 앞에 있는 미사일들을 한번에 요격할 수 있음을 보장할 수 있습니다. 끝점순으로
원점을 중심으로 하는 원의 반지름 r1, r2가 주어질 때, 두 원 사이에 있는 격자점의 개수를 구하는 문제입니다. r2는 100만까지 커질 수 있기 때문에 단순히 정사각형을 순회하면 시간초과가 납니다. 원의 방정식 x^2 + y^2 = r^2을 이용해서 한 사분면만
leetcode - 1920. Build Array from Permutation   정수 array nums가 주어질 때, 우리는 nums를 >0 ~ nums.length - 1 의 숫자 i를 nums[i]로 보내는 map 으로 여길 수 있습니다. 이 때
주어진 수열과 정수 k의 대해, 부분수열의 합이 k가 되게 하는 구간을 구하는 문제입니다. 부분수열의 구간을 작게 만들어야 하므로 투 포인터를 이용하여 구간의 길이를 비교했습니다.구간합이 k보다 작으면 뒤쪽 포인터를 전진시켜 구간합을 늘려야합니다. 구간합이 k보다 크면
달리기 경주 중인 선수들의 이름을 현재 등수 기준으로 정렬한 배열이 주어집니다. 또, 앞지르기가 발생할 때마다 앞지르기에 성공한 선수의 이름을 담은 배열이 주어집니다. 이 때 최종 등수 기준 배열을 반환하는 문제입니다.먼저 dictionary에 선수별 현재 등수를 담아
주어진 문자열을 최다빈도 글자순으로 재배열하는 문제입니다. 빈도수를 기록하기 위해 hashmap을 사용했고, 최다빈도순으로 뽑아내기 위해 priority queue을 사용했습니다. 또한비교를 편하게 하기 위해 FreqChar class를 구현했습니다.마지막 return
과제 이름과 시작시간, 그리고 소요시간을 담는 array plan을 원소로 갖는 array plans가 주어집니다. 주어진 조건에 따라 과제를 진행할 때 완료되는 순서를 return하는 문제입니다.멈춰둔 plan이 여러 개일 경우 가장 최근에 멈춘 plan부터 진행한다
인물들의 sequence가 존재할 때, name에는 i번째 인물의 이름이, yearning에는 i번째 인물에 대한 추억 점수가 들어 있습니다. 그리고 photo의 원소인 각 사진에는 임의의 인물 이름들이 들어 있습니다. 이 때, 사진별 추억 점수합을 return하는 문
장애물들과 시작점의 위치가 표시된 지도 park가 주어집니다. routes array의 원소 route는 방향과 거리를 표시한 String입니다. 예를 들어 "E 3"이라는 route는 east 방향으로 3칸을 의미합니다. routes를 읽으며 시작점부터 이동할 건데,
주어진 보드에 시작지점, 장애물, 목표지점이 표기돼있으며 이동은 sliding으로만 가능합니다. 이때 목표지점에 도달하는 최소 sliding 횟수를 구하는 문제입니다. 최소 횟수를 구해야하므로 bfs가 제격입니다.먼저 addQueueR method로 시작지점의 좌표를