자바 17

[Algorithm] 유클리드 호제법(유클리드 알고리즘) _ 재귀 함수

재귀 함수란 자기 자신을 재 호출하는 함수를 말한다. 예를 들어 코드를 보자 package algorithm; public class recursive_fun { public static void main(String[] args) { recursive_function(); } public static String recursive_function() { System.out.println("재귀 함수 호출"); return recursive_function(); } } 위와 같은 코드가 있다면 recursive_function() 함수를 호출한 뒤 "재귀 함수 호출"을 print 하고 다시 recursive_function() 함수를 재호출하여 "재귀 함수 호출"을 print 하는 방식을 반복한다. 그 ..

[BaekJoon] 백준 1931번 _회의실 배정 for JAVA _ 그리디 알고리즘

https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net https://st-lab.tistory.com/243 엄청난 블로그 설명...!! 풀이도 저 블로그에 아주 잘 설명되어있다.~ 알고리즘을 떠올리지 못했다. 이런 문제를 풀 때는 그려보는게 짱이다! 라는걸 다시 느낌......~ 다음부터는 꼭! 그려보도록 하자.. 2주정도 어학성적때매 쉬었더니 감 더 떨어짐 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arr..

알고리즘/백준 2022.01.17

[프로그래머스] 구명보트 for JAVA _ 그리디 알고리즘

https://programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr people[] 배열이 뒤죽박죽 되어있으므로 Arrays.sort()를 이용해 오름차순으로 정리한다. 그리고 여기서 가장 큰 수는 people.length() - 1 인덱스를 가진 수 이다. 맨 뒤에꺼! 얘랑 people[0] 인 가장 작은 수와 더했을 때 limit보다 작으면 둘이 태울 수 있고 limit보다 크다면 뚱뚱이 한명만 태..

[프로그래머스] 큰 수 만들기 for JAVA _ 그리디 알고리즘

https://programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 안봐도 되는 실패기 위의 문제 알고리즘은 왼쪽 숫자부터 그 옆 숫자와 비교하여 오른쪽 숫자가 더 크면 왼쪽 숫자를 지우는 방식을 사용하였다. 그러니까 4177252841 에서 4, 1을 비교하면 4 < 1 이므로 넘어가고 1 < 7 이므로 1을 삭제한다. 그러면 477252841이 되고 4 < 7 이므로 4를 삭제하여 77252841이 되고 2 < 5 이므로 2를 삭제하여 7752841, 2 < 8 이므로 775841 이 return 되는 것이다. 그래..알고리즘은 이렇게 짰고 구현을 할 때 2중 for문으로 k번 만큼 돌게, 왼쪽부터 훑..

[프로그래머스] 약수의 개수와 덧셈 for JAVA

https://programmers.co.kr/learn/courses/30/lessons/77884 코딩테스트 연습 - 약수의 개수와 덧셈 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주 programmers.co.kr 내가 푼 방법 그냥 문제 그대로 풀었다. 약수 개수 구하는 함수 따로 만듦. 코드 class Solution { public int solution(int left, int right) { int answer = 0; for(int i = left; i

[프로그래머스] 실패율 for JAVA

https://programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 내가 푼 방법 어떻게 풀었냐면...그냥 fail[] 배열을 만들어서 실패율을 넣고 배열의 뒤부터 큰걸 훑어서 제일 큰 수의 index를 answer[] 배열에 넣었다. 뒤부터 훑은 이유는 겹치는 수가 있으면 작은수부터 넣어야하니까..~~ 그리고 index 넣은 수는 -2로 바꿔줬다. 진짜 몇시간동안 봤다. 어찌저찌 해서 냈더니 정답률 70이라 어이없어서ㅜㅠ 포기..

[프로그래머스] K번째수 for JAVA

https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 내가 푼 방법 그냥 문제를 정리하고 풀라는대로 풀었다. for문으로 2차원 배열인 commands의 0~n번째 행을 읽고...했다. 코드 import java.util.ArrayList; import java.util.Collections; class Solution { public int[] solution(int[] array, int[][] commands) { int[] answer = new int[commands.le..

[프로그래머스] 소수 만들기 for JAVA

https://programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr 내가 푼 방법 내가 풀려고 시도한 방법은 우선 배열에서 3개의 수를 3중 for문으로 더하고 그 수가 2부터 자기 자신 전까지의 수 중에서 나누어지는게 있는지 찾는다. 3중 for문을 사용해서 시간 복잡도가 엉망인 코드이다. 코드 class Solution { public int solution(int[] nums) { int answer =..

[프로그래머스] 내적 for JAVA

https://programmers.co.kr/learn/courses/30/lessons/70128 코딩테스트 연습 - 내적 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 programmers.co.kr 내가 푼 방법 문제 그대로 풀었다. 코드 class Solution { public int solution(int[] a, int[] b) { int answer = 0; for(int i = 0; i < a.length; i++) answer += (a[i] * b[i]); r..

[프로그래머스] 없는 숫자 더하기 for JAVA

https://programmers.co.kr/learn/courses/30/lessons/86051?language=java 코딩테스트 연습 - 없는 숫자 더하기 0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 내가 푼 방법 구하는게 없는 숫자의 합이므로 1~9까지 더한 45에서 numbers를 모두 더한 값을 뺐다. class Solution { public int solution(int[] numbers) { int answer = 0; for(int i : numbers) answer += ..