프로그래머스(53)
-
[Programmers] 타겟 넘버
https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 간단한 완전 탐색 문제이다. DFS를 활용하여 해결했다. 현재 위치와 numbers의 길이가 같으면 모든 수에 대한 연산을 한 것이므로 그때의 합계를 타겟 넘버와 비교한다. 만약 같다면 1을, 아니라면 0을 반환하고 그 총합을 result에 담아 반환하면 된다. 코드 class Solution { public int solution(int[] numbers, int target) { r..
2023.08.17 -
[Programmers] 피로도
https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 완전 탐색 문제이며 필자는 DFS를 활용하여 해결했다. 재귀에서 가장 중요한 건 종료 조건이다. 이 문제의 종료 조건으로는 두 가지를 넣었다. 하나는 피로도가 현재 입장할 던전의 최소 피로도보다 낮을 경우이고 다른 하나는 현재 입장한 던전 개수가 총 던전 개수와 같을 경우이다. 전자의 경우는 현재까지의 던전 입장 횟수와 최댓값의 대소비교를 통해 더 큰 값을 저장한다. 후자의 경우는 모든..
2023.08.17 -
[Programmers] [1차] 뉴스 클러스터링
https://school.programmers.co.kr/learn/courses/30/lessons/17677 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 자카드 유사도를 구해서 반환하면 되는 문제이다. 주어진 문자열을 두 글자씩 잘라서 다중집합을 만들고 합집합과 교집합의 크기를 구한 뒤 65536을 곱하고 정수 처리하여 반환하면 된다. 이때 영문자를 제외한 글자가 포함되어 있다면 그 문자는 버린다. 여기서 주의할 점은 다중집합이다. 처음엔 단순 집합인줄 알고 HashSet으로 구했다가 문제를 다시 읽어보니 중복이 포함되어 있었다. 그래서..
2023.08.17 -
[Programmers] 튜플
https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 정규식을 활용해야 하는 문제이다. 필자는 다음 순서대로 해결하였다. 가장 바깥쪽 중괄호를 제거한다. 나머지를 중괄호로 묶어서 분리한다. 배열 길이를 기준으로 오름차순 정렬한다. 배열을 탐색하며 현재 Set에 들어있지 않은 값을 추가한다. 위 순서를 따라 만든 코드는 다음과 같다. 코드 import java.util.regex.Matcher; import java.util.regex.Pa..
2023.08.17 -
[Programmers] 할인 행사
https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 간단한 구현 문제이다. 유의할 점은 가장 빨리 모든 물품을 구매하는 날이 아니라 물품 구매가 가능한 모든 날을 구하는 문제라는 점이다. import java.util.HashMap; class Solution { public int solution(String[] want, int[] number, String[] discount) { int answer = 0; for (int da..
2023.08.17 -
[Programmers] 교점에 별 만들기
https://school.programmers.co.kr/learn/courses/30/lessons/87377 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 수학을 조금 응용한 구현 문제이다. 문제에서 교점을 구하는 공식을 제공하기 때문에 그대로 구현하기만 하면 된다. 주의할 점은 배열에서 1사분면과 2사분면, 3사분면과 4사분면의 위치를 반전시키기 위해 y = maxY - i.x, x = i.x - minX로 해주어야 한다. 예를 들어 maxX =4, maxY = 4이고 (1, 1)의 점이라고 가정하고 둘다 max에서 빼기로 진행하는 경우..
2023.08.16