Computer Sciences(236)
-
[Programmers] 주식 가격
https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 크게 어려울 것 없는 문제이다. 주의할 점은 현재 가격이 1초 뒤에 떨어진다고 하면 다음 가격이 되기까지 1초로 카운팅한다는 점이다. 예를 들어 [3, 2, 1] 이라는 입력이 주어지면 [1, 1, 0]이 반환되어야 한다. 스택/큐 카테고리에 들어있어 이를 활용해 해결하려 했으나 잘 해결되지 않아 이중 반복문으로 해결했다. 코드 class Solution { public int[] so..
2023.08.18 -
[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