본문 바로가기

Java16

[Java/백준/브루트 포스] 2798 - 블랙잭 문제 https://www.acmicpc.net/problem/2798 2798번: 블랙잭 문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 �� www.acmicpc.net 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; public class Main{ public static void main(String[] args) throws IOE.. 2020. 8. 26.
[Java/프로그래머스] H-Index 문제 https://programmers.co.kr/learn/courses/30/lessons/42747# 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr 코드 단순 이중 for문 이용 class Solution { public int solution(int[] citations) { int answer = 0; int paper_num = citations.length; for(int i=0; i=i) answer = i; } return answer; } } 정렬이 필요 .. 2020. 8. 23.
[Java/백준/정렬] 2751 - 수 정렬하기 2 문제 https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 시행착오 1 시간 복잡도가 O(nlogn)인 정렬 알고리즘으로 풀 수 있다길래, 병합정렬로 풀려고 했는데 시간초과가 생겼다. 아래 코드와 비슷한거 같은데 왜 시간이 더 걸리는 걸까ㅠ import java.util.Scanner; public class Main { private static void mergeSort(int[] arr) { int[] tmp = new int[ar.. 2020. 8. 20.
[자료구조/C, Java] 계수 정렬(Counting Sort) https://www.youtube.com/watch?v=n4kbFRn2z9M 목소리가 특이하신 분...ㅎ 범위 조건이 있는 경우에 한해서 굉장히 빠른 알고리즘이 있다. 계수 정렬(Counting Sort)는 단순하게 '크기를 기준으로 개수를 세는' 알고리즘이다. 지금까지는 모든 데이터를 그 자체로 위치를 바꾸어가며 정렬하는 알고리즘이었다. 계수 정렬은 '크기를 기준'으로 갯수만 세주면 되기 때문에 위치를 바꿀 필요가 없다. 모든 데이터에 한 번씩만 접근하면 된다는 점에서 무척이나 효율적이다. 1. 결과 배열의 크기를 숫자의 크기 범위만큼 잡아준다. 2. 하나를 확인할 때마다 배열에 데이터를 한개씩 증가시켜준다. 3. 출력할 때는 단순하게 배열 원소의 숫자만큼 반복하면 된다. - 시간 복잡도 : O(N).. 2020. 8. 20.
[자료구조/Java] 버블 정렬(Bubble Sort) youtu.be/YbsQiiubO74 앞에서부터 2개씩 비교해서 작은 것을 앞으로, 큰 것을 뒤로 보낸다. (제일 뒤부터 정렬된다) - 시간 복잡도 : O(n^2) 코드 public class Test{ private static void bubbleSort(int[] arr){ bubbleSort(arr, arr.length-1); } private static void bubbleSort(int[] arr, int last){ if(last > 0){ for(int i=1; i arr[i]){ swap(arr, i-1, i); } } bubbleSort(arr, last-1); } } private static void swap(int[] arr, int source, int target){ int .. 2020. 8. 20.
[자료구조/Java] Graph 검색 DFS, BFS 구현 https://www.youtube.com/watch?v=_hxFgg7TLZQ 따르고 싶은 유튜브 선생님이 생겼다.......... 1. BFS : 넓이 우선 탐색 1) Queue로 구현 가능 시작 노드 하나를 큐에 넣고 시작 → 큐에서 하나 꺼내고 → 해당 노드의 자식 노드들을 하나씩 큐에 넣음 → 처음에 넣은 노드를 출력 → (큐가 빌 때까지 반복) 2. DFS : 깊이 우선 탐색 1) Stack으로 구현 가능 스택에 노드를 하나 넣고 시작 → 스택에서 노드를 꺼내고 → 자식 노드들을 넣고 → 꺼낸 노드를 출력 → (스택이 빌 때까지 반복) 2) 재귀 호출로 구현 가능 노드에 방문하면 우선 출력 → 자식들을 재귀로 호출 내용 정리 import java.util.LinkedList; import jav.. 2020. 8. 14.
[Java/프로그래머스] 124 나라의 숫자 문제 https://programmers.co.kr/learn/courses/30/lessons/12899?language=java# 코딩테스트 연습 - 124 나라의 숫자 124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다. 124 나라에는 자연수만 존재합니다. 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다. programmers.co.kr 풀이 3진법을 이용해서 풀었다. 아래의 표를 이용해서 십진법 → 삼진법 → 124 나라의 숫자 순으로 숫자를 변환시켜 주었다. 십진법 3진법 124 나라의 숫자 1 1 1 2 2 2 3 10 4 4 11 11 5 12 12 6 20 14 7 21 21 8 22 22 9 100 24 10 101.. 2020. 8. 7.