Computer Sciences/Problem Solve(155)
-
[Programmers] 두 큐 합 같게 만들기
https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 두 큐의 합이 같도록 큐의 원소들을 enqueue, dequeue하는 문제이다. 문제 접근은 합이 큰 큐에서 작은 큐로 원소를 enqueue하는 방법을 두 큐의 합이 같아질 때까지 반복하도록 구현했다. 입력값이 int형이므로 총합이 홀수인 경우는 같게 할 수 없으므로 항상 -1을 반환한다. 시도 횟수에 제한을 두는 이유는 순환 문제 때문이다. [1, 1], [1, 5] 인 경우 총합은..
2023.09.07 -
[Programmers] 3 x n 타일링
https://school.programmers.co.kr/learn/courses/30/lessons/12902 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 2 x n 타일링 문제를 풀고 같은 유형이라고 판단된 3 x n 타일링 문제를 풀어보았다. 규칙을 간단히 찾을 줄 알았으나 쉽지 않았고 규칙을 찾기 위해 직접 세보려고 했으나 n이 6인 경우부터 엄청나게 많은 경우의 수가 나오는 것을 알게 됐고 다른 설명글을 참고하게 되었다. 규칙은 f(n)= f(n-2)*4 - f(n-4) 이다. 그리고 이 규칙을 사용하기 위해서는 모듈러 분배법칙을 ..
2023.09.06 -
[Programmers] 2 x n 타일링
https://school.programmers.co.kr/learn/courses/30/lessons/12900 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 기본적인 DP문제이다. n = 4인 경우를 생각해보자. 가능한 경우의 수는 사이트에 나와있는대로 5가지이다. 그렇다면 n = 3인 경우는 어떨까? 1 x 2를 제외한 것들이 해당되므로 3이 될 것이다. n = 2인 경우는 어떨까? 다시 2 x 1을 제외한 것들이 해당되므로 2가 될 것이다. 이를 식으로 계산해보면 a_n = a_(n - 1) + a_(n - 2)가 된다. 이를 그대로 코..
2023.09.06 -
[Programmers] 숫자 변환하기
https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 x가 y가 되도록 하는 최소 연산 횟수를 구하는 문제이다. 가장 바로 떠오른 방법은 DFS였고 이를 활용했으나 시간 초과가 발생하여 Set을 활용한 BFS 방식으로 바꾸어 해결하였다. 임시 Set을 두었는데 이유는 연산 횟수를 정확히 세기 위함이다. BFS import java.util.*; class Solution { public int solution(int x, int y, i..
2023.09.06 -
[Programmers] 롤케이크 자르기
https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 형과 동생이 토핑의 개수를 똑같이 나눠먹기 위한 문제이다. 문제를 보고 Set을 사용해서 풀려고 했으나 엄청난 시간 초과를 보았고 Map과 Set을 함께 사용하여 해결했다. 코드 import java.util.Set; import java.util.HashSet; import java.util.Map; import java.util.HashMap; class Solution { pub..
2023.09.06 -
[Programmers] 하노이의 탑
https://school.programmers.co.kr/learn/courses/30/lessons/12946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 재귀를 배울 때 많이 접하는 기초 문제이다. 코드 import java.util.List; import java.util.ArrayList; class Solution { private List list = new ArrayList(); public int[][] solution(int n) { hanoi(n, 1, 2, 3); int[][] answer = new int[list.si..
2023.09.06