본문 바로가기

전체 글111

Quick sort public static void main(String[] args) { int[] src = new int[]{1, 9, 8, 5, 4, 2, 3, 7, 6}; printArray(src); midPivotSort(src, 0, src.length-1); printArray(src); } private static void midPivotSort(int[] src, int start, int end) { if(start >= end) return; int part = partition(src, start, end); if(start < part-1) midPivotSort(src, start, part-1); if(part < end) midPivotSort(src, part, end); } priva.. 2023. 8. 1.
Merge sort 출처 : https://en.wikipedia.org/wiki/Merge_sort public static void main(String[] args) { int[] src = new int[]{1, 9, 8, 5, 4, 2, 3, 7, 6}; int[] tmp = new int[src.length]; printArray(src); mergeSort(src, tmp, 0, src.length-1); printArray(src); } private static void mergeSort(int[] src, int[] tmp, int start, int end) { if(start < end) { int mid = (start + end) / 2; mergeSort(src, tmp, start, mid); .. 2023. 8. 1.
소수 찾기 문제 설명 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers는 길이 1 이상 7 이하인 문자열입니다. numbers는 0~9까지 숫자만으로 이루어져 있습니다. "013"은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다. 입출력 예 numbers return "17" 3 "011" 2 입출력 예 설명 예제 #1 [1, 7]으로는 소수 [7, 17, 71]를 만들 수 있습니다. 예제 #2 [0, 1, 1]으로는 소수 [11, .. 2023. 7. 27.
최소직사각형 문제 설명 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 명함 번호 가로 길이 세로 길이 1 60 50 2 30 70 3 60 30 4 80 40 가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든 명함들을 수납할 수 있습니다. 이때.. 2023. 7. 27.
게임판 덮기 (문제 ID: BOARDCOVER, 난이도: 하) 입력 전체 입력의 첫줄에는 테스트 케이스의 수 C 가 주어집니다. 각 테스트 케이싀의 첫 줄 : 두 개의 정수 H(height), W(weight) 가 주어집니다. (게임판 사이즈는 H * W ) 각 테스트 둘째줄부터 H 줄만큼 W 칸만큼의 게임판 모양이 주어집니다. 게임판 모양은 # 은 검은 칸을 . 는 흰 칸을 나타냅니다. 출력 흰 칸을 세 칸짜리 L자 모양으로 덮어야 합니다. 한 줄에 하나씩 흰 칸을 모두 덮는 방법의 수를 출력합니다. package com.luigi.examples.level1; import java.awt.*; public class BoardCover { public static final int WHITE_COLOR = 5; public static void main(Stri.. 2023. 7. 24.
소풍 (문제 ID: PICNIC, 난이도: 하) 전체 입력의 첫줄에는 테스트 케이스의 수 C 가 주어집니다. 각 케이스의 첫 줄에는 학생의 수 n 과 친구 쌍의 수 m 이 주어집니다. 각 케이스의 2 번째 줄에는 m개의 정수 쌍으로 서로 친구인 두 학생의 번호가 주어집니다. 번호는 모두 0부터 n-1 사이의 정수이고, 같은 쌍은 입력에 두 번 주어지지 않습니다. 학생들의 수는 짝수 입니다. 출력 각 테스트 케이스마다 한 줄에 모든 학생을 친구끼리만 짝지어줄 수 있는 방법의 수를 출력합니다. public class SoPoong { public static void main(String[] args) { String[] inputStrs = new String[]{ "3" // 총 테스트 케이스는 3 개 ,"2 1" // , "0 1" , "4 6" ,.. 2023. 7. 19.