모의면접이었는데도 너무 떨려서 면접 보기 전까지 계속 긴장해서 손을 덜덜 떨며 시작을 했다. 거의 어제 하루를 꼬박 준비했는데 긴장해서는 준비한 것도 말이 꼬이고, 후반부터는 쉬운 질문에도 머리가 안 돌아가기 시작했다. 대답 못한 그 질문이 너무 아쉬워서 계속 머리에 남는다. 아, 진짜.. 그 질문만 대답했으면 이렇게 아쉽지는 않을 것 같은데 꼭 면접을 보고 나면 이렇게 하나씩 내 마음에 남는 아쉬움이 싫다.
문제 : 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.
class Solution {
public int[] solution(int n, int m) {
// n과 m의 최대공약수를 구합니다.
int gcd = findGCD(n, m);
// 최소공배수를 구하기 위해 n과 m을 곱한 후 최대공약수로 나눕니다.
int lcm = (n * m) / gcd;
// 최대공약수와 최소공배수를 배열로 반환합니다.
return new int[] {gcd, lcm};
}
// 유클리드 호제법을 이용하여 최대공약수를 구하는 함수입니다.
private int findGCD(int a, int b) {
// b가 0이 될 때까지 반복합니다.
while (b != 0) {
// b의 값을 임시로 저장합니다.
int temp = b;
// a를 b로 나눈 나머지를 b에 저장합니다.
b = a % b;
// a에 임시로 저장했던 값을 저장합니다.
a = temp;
}
// b가 0이 되었을 때 a가 최대공약수입니다.
return a;
}
}
유클리드 알고리즘은 두 숫자의 최대 공약수(GCD)를 찾는 간단하고 효율적인 방법입니다. 두 숫자의 GCD는 두 숫자를 나머지 없이 나누는 가장 큰 숫자입니다.
유클리드 알고리즘의 작동 방식을 이해하는 쉬운 방법은 다음과 같습니다.
- 두 개의 숫자로 시작: 이를
a
와b
라고 부르겠습니다. 여기서a
는 더 큰 숫자이고b
는 더 작은 숫자입니다.- 큰 수를 작은 수로 나눕니다: 이 나눗셈의 나머지를 계산합니다. 수학적인 용어로 이는
a % b
(여기서%
는 나머지를 나타냄)로 작성할 수 있습니다.- 큰 숫자 바꾸기: 더 작은 숫자
b
의 값을 가져와a
를b
로 바꿉니다. 그런 다음 'b'를 2단계에서 얻은 나머지 값으로 바꿉니다.- 반복: 나머지가 0이 될 때까지 이 과정을 계속합니다. 나머지 0에 도달하면 'b'의 현재 값은 원래 두 숫자의 GCD입니다.
문제 : 상반기 동안 각 아이스크림 성분 타입과 성분 타입에 대한 아이스크림의 총주문량을 총주문량이 작은 순서대로 조회하는 SQL 문을 작성해주세요. 이때 총주문량을 나타내는 컬럼명은 TOTAL_ORDER로 지정해주세요.
SELECT I.INGREDIENT_TYPE, SUM(F.TOTAL_ORDER) AS 'TOTAL_ORDER'
FROM FIRST_HALF F
JOIN ICECREAM_INFO I
ON F.FLAVOR = I.FLAVOR
GROUP BY I.INGREDIENT_TYPE
ORDER BY F.TOTAL_ORDER
오전에는 면접을 보고 오후에는 개인과제를 계속 진행하는데 JWT.. 왜 이렇게 어려울까..
3시부터 1시간은 Spring Mvc 실시간 강의를 들었다.