본문 바로가기

Coding Test

(221)
[프로그래머스/자바] 삼각 달팽이 class Solution { private static final int[] dx = {0, 1, -1}; private static final int[] dy = {1, 0, -1}; public int[] solution(int n) { int[][] triangle = new int[n][n]; int v = 1; int x = 0; int y = 0; int d = 0; while (true) { triangle[y][x] = v++; int nx = x + dx[d]; int ny = y + dy[d]; if (nx == n || ny == n || nx == -1 || ny == -1 || triangle[ny][nx] != 0) { d = (d + 1) % 3; nx = x + dx[d];..
[프로그래머스/자바] 최대공약수와 최소공배수 class Solution { public int[] solution(int n, int m) { if (n > m) { int temp = n; n = m; m = temp; } if (m % n == 0) { return new int[] {n, m}; } else { int num = 1; for (int i = 1; i
[프로그래머스/MySQL] 자동차 대여 기록 별 대여 금액 구하기 SELECT H.HISTORY_ID, ROUND(C.DAILY_FEE * (DATEDIFF(H.END_DATE, H.START_DATE) + 1) * (1 - IFNULL(DISCOUNT_RATE, '0') / 100)) AS FEE FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY AS H INNER JOIN CAR_RENTAL_COMPANY_CAR AS C ON H.CAR_ID = C.CAR_ID AND C.CAR_TYPE = '트럭' LEFT JOIN CAR_RENTAL_COMPANY_DISCOUNT_PLAN AS P ON C.CAR_TYPE = P.CAR_TYPE AND P.DURATION_TYPE = ( CASE WHEN (DATEDIFF(H.END_DATE, H.START_..
[프로그래머스/자바] 영어 끝말잇기 import java.util.*; class Solution { public int[] solution(int n, String[] words) { List list = new ArrayList(); list.add(words[0]); for (int i = 1; i < words.length; i++) { if (words[i].charAt(0) != words[i - 1].charAt(words[i - 1].length() - 1)) { return new int[]{i - (i / n) * n + 1, i / n + 1}; } else if (list.contains(words[i])) { return new int[]{i - (i / n) * n + 1, i / n + 1}; } else lis..
[프로그래머스/자바] 카펫 class Solution { public int[] solution(int brown, int yellow) { int tmp1 = brown / 2 - 1; int tmp2 = (brown - (tmp1 * 2)) / 2; while (true) { if ((tmp1 - 2) * tmp2 == yellow) return new int[]{tmp1, tmp2 + 2}; else { tmp1 -= 1; tmp2 = (brown - (tmp1 * 2)) / 2; } } } }
[프로그래머스/MySQL] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 SELECT CONCAT("/home/grep/src/", F.BOARD_ID, "/", F.FILE_ID, F.FILE_NAME, F.FILE_EXT) AS FILE_PATH FROM USED_GOODS_FILE AS F INNER JOIN USED_GOODS_BOARD AS B ON F.BOARD_ID = B.BOARD_ID WHERE B.VIEWS = ( SELECT MAX(VIEWS) FROM USED_GOODS_BOARD ) ORDER BY SUBSTR(FILE_PATH, 22, 10) DESC;
[프로그래머스/MySQL] 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 SELECT CAR_ID, IF(CAR_ID IN ( SELECT CAR_ID FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE '2022-10-16' BETWEEN START_DATE AND END_DATE ), '대여중', '대여 가능') AS AVAILABILITY FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY GROUP BY CAR_ID ORDER BY CAR_ID DESC;
[프로그래머스/MySQL] 식품분류별 가장 비싼 식품의 정보 조회하기 SELECT CATEGORY, PRICE AS MAX_PRICE, PRODUCT_NAME FROM FOOD_PRODUCT WHERE CATEGORY IN ('과자', '국', '김치', '식용유') AND (CATEGORY, PRICE) IN ( SELECT CATEGORY, MAX(PRICE) FROM FOOD_PRODUCT GROUP BY CATEGORY ) ORDER BY MAX_PRICE DESC;