Computer Sciences(237)
-
[Programmers] 귤 고르기
https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 k개의 귤을 고를 때 크기별로 분류 시 크기가 다른 종류가 최소가 되도록 해야 한다. 이때 종류의 개수를 구해야 한다. 처음 문제를 보았을 땐 배열로 카운트할까 생각했지만 원소로 어떤 숫자가 들어올지 몰라 초기화하기 까다로웠다. 그래서 숫자별로 그룹핑할까 생각했지만 이 또한 적절하지 않다고 생각했다. 마지막으로 결정한 방법은 HashMap과 정렬을 활용한 방법이다. 먼저 주어진 tan..
2023.08.09 -
[Programmers] 멀리 뛰기
https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 1과 2를 가지고 N까지 가는 모든 경우의 수를 구하는 문제이다. 6까지를 직접 구해보면 다음과 같다. 어디서 많이 본 패턴 아닌가? 그렇다. 피보나치 수열이다. 1과 2를 사용한 N까지의 모든 조합은 피보나치 수열과 같다. 코드 class Solution { public long solution(int n) { long[] dp = new long[n + 1]; if (n == 1) ..
2023.08.08 -
[Programmers] N개의 최소공배수
https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 간단한 최소공배수를 구하는 문제이다. for 문을 돌면서 최소공배수를 갱신해나가면 된다. 코드 class Solution { public int solution(int[] arr) { int result = arr[0]; for (int i = 1; i < arr.length; i++) { result = lcm(result, arr[i]); } return result; } publi..
2023.08.08 -
[Programmers] 점프와 순간 이동
https://school.programmers.co.kr/learn/courses/30/lessons/12980 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 문제가 쓸데없이 긴데 핵심은 간단하다. 점프를 최소화하여 목표 지점까지 도착하는 것이다. 이를 달리 말하면 순간이동을 최대화하라는 말이다. 순간이동은 현재까지 온 거리 * 2 만큼 이동한다. 따라서 목표 지점까지 점프를 최소화하여 최단으로 가는 거리는 목표 거리를 2로 계속 나누면 되는 것이다. 그러다 만약 홀수가 나오면 한 칸 점프하면 된다. 코드 public class Solutio..
2023.08.08 -
[Programmers] 예상 대진표
https://school.programmers.co.kr/learn/courses/30/lessons/12985 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 토너먼트 대진표가 주어질 때 a와 b가 만나는 라운드를 구해야 한다. 2의 n승만큼 인원이 주어지므로 부전승은 없다. 처음 문제를 보고 이진 트리 구조가 생각나서 트리를 활용해 부모 노드가 같은 경우를 찾으려고 했으나 너무 과한 것 같다고 생각했다. 그래서 n을 2로 나누어 줄여나가는 방식으로 해결했다. 처음엔 재귀로 했더니 런타임 오류(아마 스택오버플로우로 추정된다)가 절반 가까이 발..
2023.08.08 -
[Programmers] 영어 끝말잇기
https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 Set을 활용한 간단한 구현 문제이다. 코드 import java.util.Set; import java.util.HashSet; class Solution { public int[] solution(int n, String[] words) { int[] answer = {0, 0}; Set set = new HashSet(); set.add(words[0]); for (int orde..
2023.08.08