개발 공부/문제와 풀이 17

비선형 자료구조 - 트라이 연습문제

문제1)// Practice1// 문자열 배열 strs 와 문자열 prefix 가 주어졌을 때// 문자열 배열 내에 prefix 로 시작하는 단어가 있는지를 확인하는 프로그램을 작성하세요.// prefix 로 시작하는 단어가 있으면 true, 없으면 false 를 반환하세요.// 입출력 예시// 입력 strs: "apple", "april", "app", "ace", "bear", "best"// 입력 prefix: "app"// 출력: true// 입력 strs: "apple", "april", "app", "ace", "bear", "best"// 입력 prefix: "pre"// 출력: falseimport java.util.HashMap;class Node { HashMap child; ..

알고리즘 - 연습문제 2

문제 1)이진탐색을 이용하여 아래의 그림과 같이 최솟값 최댓값 사이의 중앙값을 구하여 2개(n개)의 제거를 만족하는 최솟값 중에 최댓값 구해보기import java.util.Arrays;public class Practice1 { public static int solution(int[] rocks, int goal, int n) { if (rocks == null || rocks.length == 0) { return -1; } Arrays.sort(rocks); // 바위를 n 개 지웠을 때 최소 step 중 max 값을 찾는 문제 int left = 0; int right = goal; ..

알고리즘 - 연습 문제 1

문제1)최소 시간  0, 최대시간 60으로 잡고 이진탐색으로 품중앙값 30분안에 의사 두명이 몇명까지진료가 가능한가? => 7m : 4명 / 10m: 3명 = total: 7 > n ...import java.util.Arrays;public class Practice1 { public static int solution(int n, int[] times) { if (times == null || times.length == 0) { return -1; } Arrays.sort(times); int left = 0; int right = times[times.length - 1] * n; while (le..

최단 경로 알고리즘 - 연습 문제

문제1)// Practice1// 2차원 배열 data 에 그래프 데이터가 주어졌다.// 무방향이고 간선에 가중치 값이 있는 그래프이다.// 1번 정점에서 N 번 정점으로 최단 경로로 이동하려고 하는데,// 두 정점을 경유해서 가려고 한다.// 1번 점점에서 출발하여 두 정점을 경유하여 N 번 정점으로 가는 최단 경로를 구하세요.// 입출력 예시)// 입력 data: {{1, 2, 3}, {1, 3, 5}, {1, 4, 4}, {2, 3, 3}, {2, 4, 5}, {3, 4, 1}}// 출력: 7import java.util.ArrayList;import java.util.PriorityQueue;public class Practice1 { static ArrayList> graph; fin..

해시테이블 - 연습 문제

문제1// Practice1// 해시 테이블을 이용한 수 찾기// 주어진 첫 번째 배열을 이용하여 해시 테이블을 초기화 한 후// 두 번째 배열이 주어졌을 때 해당 배열 내 데이터가 해시 테이블에 있는지 확인하는 코드를 작성하세요.// 입출력 예시)// 배열1: 1, 3, 5, 7, 9// 배열2: 1, 2, 3, 4, 5// 출력: True, False, True, False, True 구현 코드import java.util.Hashtable;public class Practice1 { public static void solution(int[] arr1, int[] arr2) { Hashtable ht = new Hashtable(); for (int i = 0; i  ..

연결 리스트 - 연습 문제 4

문제 4// Practice4// 연결 리스트 배열 사용 연습// 주어진 문자열 배열을 연결 리스트 배열로 관리하는 코드를 작성하시오.// 관리 규칙은 다음과 같다.// 각 문자열의 첫 글자가 같은 것끼리 같은 연결 리스트로 관리하기 자바 구현 코드package P4;import java.util.HashSet;class Node { String data; Node next; Node() { } Node(String data, Node next) { this.data = data; this.next = next; }}class LinkedList { Node head; char alphabet; //첫 글자 관리를 위해 char 변수 잡..

알고리즘 - 이진탐색 문제풀이

문제)// Practice5// 정수형 배열 nums 와 정수 m 이 주어졌다.// nums 에는 양의 정수 값들이 들어 있고, m 은 배열을 부분 배열로 분리할 수 있는 수이다.// nums 배열을 m 개의 부분 배열로 분리할 때,// 각 부분 배열의 합중 가장 큰 값이 최소가 되도록 분리했을 때의 합을 출력하세요.// 입출력 예시// nums: 7, 2, 5, 10, 8// m: 2// 출력: 18// nums: 1, 2, 3, 4, 5// m: 2// 출력: 9  구현 코드)public class Practice5 { public static int solution(int[] nums, int m) { int left = 0; int right = 0; f..

선형 자료구조 - 큐(Queue) 연습문제

Practice1// Practice1// 카드 섞기// 1부터 N 까지의 번호로 구성된 N장의 카드가 있다.// 1번 카드가 가장 위에 그리고 N번 카드는 가장 아래의 상태로 카드가 순서대로 쌓여있다.// 아래의 동작을 카드 한 장만 남을 때까지 반복했을 때, 가장 마지막 남는 카드 번호를 출력하시오.// 1. 가장 위의 카드는 버린다.// 2. 그 다음 위의 카드는 쌓여 있는 카드의 가장 아래에 다시 넣는다.// 예시 입력)// N = 4// 결과: 4// N = 7// 결과: 6 구현 코드import java.util.LinkedList;import java.util.Queue;import java.util.stream.IntStream;public class Practice1 { public..