알고리즘 (JAVA) 34

[알고리즘] 유클리드 호제법 - 최대공약수/최소공배수 문제

유클리드 호제법이란? (=유클리드 알고리즘) - 2개의 자연수의 최대공약수를 구하는 알고리즘의 하나. - 두 수가 서로 상대방 수를 나누어서 결국 원하는 수를 얻는 알고리즘. 원리 - 2개의 자연수 a,b에 대해서 (a>b) a를 b로 나눈 나머지를 r이라고 하면 a와 b의 최대공약수는 b와 r의 최대공약수와 같다. r을 구하는 과정을 반복하여 r이 0이 되었을 때, 나누는 수가 a와 b의 최대공약수이다. java public static int gcd(int p, int q) { if (q == 0) return p; return gcd(q, p%q); } 최소공배수 구하는 공식은? a * b / 최대공약수 코드 완성본 class Solution { public int[] solution(int n, ..

알고리즘 (JAVA) 2022.05.09

[프로그래머스] 인형뽑기 게임 문제풀이 (JAVA)

문제 설명 게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. "죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 "1 x 1" 크기의 칸들로 이루어진 "N x N" 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 "5 x 5" 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 "1 x 1" 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡 쌓여 있습니다. 게임 사용자는 크레인을 좌우로 움직여서 멈춘 위치에서 가장 위에 있는 인형을 집어 올릴 수 있습니다. 집어 올린 인형은 바구니에 쌓이게 되는 데,..