분류 전체보기

배열의 모든 값이 K(스코빌 지수) 이상이 될 때까지가장 낮은 두 개의 음식을 특별한 방법으로 섞는다.가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는 최소 횟수를 return 한다. 원래는 ArrayList를 만들어 스코빌 지수를 넣고매번 정렬을 하려고 했다.그러나 시간 + 정확도 테스트에서 모두 점수를 제대로 받지 못했다. 그러던 중 우선순위 큐를 사용해야 함을 알게 됐다.우선순위 큐는 일반적인 큐와 달리, 들어가는 순서와 상관없이 우선순위가 높은 데이터가 먼저 나가므로따로 정렬을 해줄 필요가 없어 기존 방식에 비해 훨씬 효율적이다. // 기본형: 우선순위가 낮은 숫자가 먼저 나옴 (작은 숫자)P..
알고리즘 분류- 다이나믹 프로그래밍 주어진 정수 n(양수, 11보다 작음)을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 문제다. 공책에 쭉쭉 경우의 수를 적다가 규칙을 발견했다.cases[n] = cases[n-1] + cases[n-2] + cases[n-3]이렇게 n의 방법의 수는 n-1, n-2, n-3의 방법의 수를 모두 합친 것과 같다는 것이었다.써내려가다보니cases[1] = 1cases[2] = 2cases[3] = 4cases[4] = 7cases[5] = 13cases[6] = 24cases[7] = 44cases[8] = 81cases[9] = 149cases[10] = 274이런 식으로 값이 나왔다. 작성한 코드는 다음과 같다.import java.util.*;import j..
깔깔답지를 볼까 수많은 유혹의 생각들이 들었지만보지 않고 스스로의 힘으로 해냈다 이렇게 발전해나가는 나..제법 대견할지도? 각설하고,문제를 풀어보자! 각 기능은 진도가 100%일 때 서비스에 반영할 수 있다.또, 각 기능의 개발 속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있지만,뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포된다. 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때각 배포마다 몇 개의 기능이 배포되는지를 return 하는 문제다. import java.util.*;class Solution { public int[] solution(int[] prog..
알고리즘 분류- 브루트포스 알고리즘- 백트래킹 주어진 수열의 부분수열 중 원소를 다 더한 값이 S가 되는 경우의 수를 구하는 문제다.문제를 보고 depth를 하나씩 더해나가면서 백트래킹으로 풀어야겠다까지는 생각했는데 그걸 어떻게 구현해야 할지는 감이 안 왔다. 구글링 통해 알아낸 방법을 이해하려 노력했다.import java.util.*;import java.io.*;class Main { static int N, S, cnt; static int[] arr; public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReade..
배열 arr에서 연속적으로 나타나는 숫자를 하나만 남기고 제거해야 한다.이때 제거된 후 남은 수들은 배열 arr의 원소들의 순서를 유지해야 한다. 처음에는 문제를 제대로 안 읽고set을 사용해서 중복을 제거하려고 했지만,연속적으로 나타나는 숫자를 하나로 남기는 문제이므로 set은 사용할 수 없음을 알았다. 그래서 생각한 방법은앞에 숫자랑 비교해서 일치하지 않는 경우에만 list에 추가하고,마지막에 list를 arr로 바꿔 출력하는 것이었다.정확성 테스트, 효율성 테스트 모두 통과했다. import java.util.*;public class Solution { public int[] solution(int []arr) { ArrayList list = new ArrayList(); ..
알고리즘 분류- 수학- 조합론- 백트래킹- 재귀 크기가 k인 집합 S가 주어졌을 때 그 중 6개를 고를 수 있는경우의 수를 모두 출력하는 문제다. 머릿속으로는 kC6 경우의 수를집합 S에서 해당 index 찾아 출력하면 되겠다~생각했는데, 코드로 어떻게 combination을 구현하는지 몰라서 헤맸다. 찾아보니 재귀와 백트래킹을 사용해야 하는 문제였다.아직 나에게는 너무나 낯선 백트래킹 구현...머리로는 알겠는데 코드로 구현하는게 쉽지 않은 것 같다. import java.util.*;import java.io.*;class Main { static int k; static int[] S, numbers; static StringBuilder sb; public static ..
다음과 같이 풀었다.성공 코드import java.util.*;class Solution { public boolean solution(String[] phone_book) { Arrays.sort(phone_book); for (int i = 0; i  처음에는 아래와 같이 j의 범위를 i + 1부터 phone_book.length까지로 설정했다.실패 코드import java.util.*;class Solution { public boolean solution(String[] phone_book) { Arrays.sort(phone_book); for (int i = 0; i 그랬더니 정확성은 테스트는 모두 통과했는데효율성 테스트의 테스트3,..
· Finance
오늘 좋은 기회로 아주경제 주최 '2025 아시아태평양 금융포럼'에 참석했다. 금융 IT에 관심이 있고 입사를 꿈꾸는 취준생 입장에서세계 경제의 불확실성과 양극화 문제를 알아보고,해당 상황에서 당국은 어떻게 대응해야 할 지 전문가들의 견해를 들어보고 싶어서서포터즈를 신청했다. (10만원 상당의 호텔 중식에도 끌린 건 안 비밀)https://linkareer.com/activity/230410 2025 아시아태평양금융포럼(Asia-Pacific Financial Forum) 서포터즈 모집 | 공모전 대외활동-링커리어대외활동인 2025 아시아태평양금융포럼(Asia-Pacific Financial Forum) 서포터즈 모집입니다. 혜택으로는 사은품 지급, 수료증 및 인증서 등이 있습니다.linkareer.co..