코딩 테스트 10

[java] 최대공약수와 최소공배수

1️⃣문제 : 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. 2️⃣제한 사항 : 두 수는 1000000이하의 자연수입니다. 3️⃣개인 정답 및 해설 : class Solution { public int[] solution(int n, int m) { int max = Math.max(n, m); //a int min = Math.min(n, m); //b // 최대 공약수 while(min != 0) { int r = max % min; gcd ..

코딩 테스트 2024.03.08

[java] 제일 작은 수 제거하기

1️⃣문제 : 정수를 저장한 배열, arr에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를 들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴하고, [10]이면 [-1]을 리턴합니다. 2️⃣제한 사항 : arr은 길이 1이상인 배열입니다. 인덱스 i, j에 대해 i 과 j가 같지 않으면 arr[i]는 arr[j]와 같지 않습니다. 3️⃣성능 요약 : 4️⃣개인 정답 및 해설 : collection 사용 import java.util.*; class Solution { public int[] solution(int[] arr) { int[] answer = {}; if (arr.len..

코딩 테스트 2024.03.06

[java] 피자 나눠먹기(3) - Math.ceil

1️⃣문제 : 머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다. 피자 조각 수 slice와 피자를 먹는 사람의 수 n이 매개변수로 주어질 때, n명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return하도록 solution함수를 완성해보세요 2️⃣제한 사항 : 2 ≤ slice ≤ 10 1 ≤ n ≤ 100 3️⃣성능 요약 : 4️⃣개인 정답 및 해설 : // 1번 풀이 class Solution { public int solution(int slice, int n) { int answer = 0; if(n % slice > 0) { answer = n / slice +1; }else{ answer = n / slice; } ret..

코딩 테스트 2024.02.18

[java] 편지

문제 : 머쓱이는 할머니께 생신 축하 편지를 쓰려고 합니다. 할머니가 보시기 편하도록 글자 한 자 한 자를 가로 2cm 크기로 적으려고 하며, 편지를 가로로만 적을 때, 축하 문구 message를 적기 위해 필요한 편지지의 최소 가로길이를 return하도록 solution함수를 완성해주세요. 해답 및 해설 : class Solution { public int solution(String message) { int answer = 0; answer = message.length() * 2; return answer; } } 글자 한 자가 가로 2cm 크기이기 때문에 편지지의 최소한의 가로길이는 message의 전체 길이의 두배를 곱해주면 되는 간단한 로직이다. => message.length() * 2 하..

코딩 테스트 2024.02.11

[java] 배열 뒤집기 - collections.reverse

문제 : 정수가 들어있는 배열 num_list가 매개변수로 주어집니다. num_list의 원소의 순서를 거꾸로 뒤집은 배열을 return하도록 solution함수를 완성해주세요. 해답 및 해설 : import java.util.Collections; import java.util.List; import java.util.stream.Collectors; import java.util.Arrays; class Solution { public int[] solution(int[] numList) { List list = Arrays.stream(numList).boxed().collect(Collectors.toList()); Collections.reverse(list); return list.stream..

코딩 테스트 2024.02.09

[JAVA] 부분 문자열 - .contains()

문제 : 어떤 문자열 A가 다른 문자열 B안에 속하면 A를 B의 부분 문자열이라고 합니다. 예를 들어 문자열 "abc"는 문자열 "aabcc"의 부분 문자열입니다. 문자열 str1과 str2가 주어질 때, str1이 str2의 부분 문자열이라면 1을, 부분 문자열이라면 0을 return하도록 solution 함수를 완성해주세요. 풀이 : class Solution { public int solution(String str1, String str2) { int answer = 0; if (str2.contains(str1)) { // contains 메소드 사용 : 포함되어있는지 여부 확인 answer = 1; } else { answer = 0; } return answer; } } str2에서 str1..

코딩 테스트 2024.01.17

[java] 정수의 제곱근 판별 (Math.sqrt, Math.pow)

문제 : 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 풀이 : class Solution { public long solution(long n) { long answer = 0; if((Math.sqrt(n))%1 == 0) { // 제곱근을 1로 나눴을 때의 나머지가 0 => 정수의 제곱이라는 말 answer = (long) Math.pow(Math.sqrt(n) + 1, 2); // n 값 제곱근에 1을 더한 값을 제곱(2)으로 만듬 } else { answer = -1; } return answer; } } answer =..

코딩 테스트 2024.01.12

[java] x만큼 간격이 있는 n개의 숫자

문제 : 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. 제한 조건 : - x는 -10000000이상 10000000 이하인 정수입니다. - n은 1000 이하인 자연수입니다. 풀이 : class Solution { public long[] solution(long x, int n) { // x는 범위가 넓어 long으로 지정해야 한다 long[] answer = new long[n]; // 배열의 길이를 나타내는 n을 넣어준다 for(int i = 0; i < n; i++) { // n이 4일 경우 0, 1, 2, 3 answer[i] =..

코딩 테스트 2024.01.08

[SQL] 12세 이하인 여자 환자 목록 출력하기

문제 : PATIENT 테이블에서 12세 이하인 여자환자의 환자이름, 환자번호, 성별코드, 나이, 전화번호를 조회하는 SQL문을 작성해주세요. 이때 전화번호가 없는 경우, 'NONE'으로 출력시켜 주시고 결과는 나이를 기준으로 내림차순 정렬하고, 나이 같다면 환자이름을 기준으로 오름차순 정렬해주세요. 테이블 : 정답 : SELECT PT_NAME, PT_NO, GEND_CD, AGE, IFNULL(TLNO, "NONE") FROM PATIENT WHERE AGE BETWEEN 0 AND 12 AND GEND_CD = "W" ORDER BY AGE DESC, PT_NAME ASC; 설명 : SELECT에 각각 환자이름, 환자번호, 성별 코드, 나이, 전화번호를 넣는데 전화번호(TLNO)가 없으면(IFNUL..

코딩 테스트 2024.01.07