본문 바로가기
728x90

Language/Java144

[백준 | Java] 1074번 Z - 분할 정복, 재귀 1074번 / Z❓ Z🏷️ 관련 주제 : 분할 정복 재귀💦 나의 시도1. 행,열의 위치 이동 규칙을 찾기import java.io.*;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st.nextToken()); int .. 2025. 3. 11.
[백준 | Java] 31860번 열심히 일하는 중 - Priority Queue 31860번 / 열심히 일하는 중❓ 열심히 일하는 중🏷️ 관련 주제 : Priority Queue💦 나의 시도우선순위 큐를 이용한 풀이BufferedReader와 StringTokenizer로일의 개수 int N,일을 처리한 후 감소하는 일의 중요도 int M,일의 완료 기준 int K를 입력 받아 int형 변환 후 할당PriorityQueue task를 내림차순 정렬로 선언 : 작업의 우선순위를 담을 우선순위 큐0 ~ (N - 1)의 범위를 반복문을 돌면서 작업의 중요도를 task에 담기송이가 모든 일을 끝낼 때까지 걸린 일 수 int day를 0으로 초기화전날의 만족감 int Y를 0으로 초기화task가 비어있지 않은 동안 반복문을 돌며 일 처리day 1증가가장 중요한 일 task에서 꺼내서(ta.. 2025. 2. 21.
[백준 | Java] 1351번 무한 수열 - Dynamic Programming, Map 1351번 / 무한 수열❓ 무한 수열🏷️ 관련 주제 : Dynamic Programming Map 💦 나의 시도재귀함수를 이용한 $A_N$ 구하기import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); long N = Long.parseLong(st.nextToken()); .. 2025. 2. 21.
[백준 | Java] 9251번 LCS - Dynamic Programming, String 9251번 / LCS❓ LCS🏷️ 관련 주제 : Dynamic Programming String'LCS문제는 다이나믹 프로그래밍을 이용해서 풀 수 있다'고 엊그제 공부했기 때문에 다이나믹 프로그래밍을 이용한 풀이 코드를 작성하려고 하였습니다.그런데 어제 풀었던 LIS 문제와는 달리 문자열 2개가 주어질 때는 어떻게 해야할 지 바로 떠오르지 않았습니다.엊그제 공부할 때, LCS 코드도 따라 썼었는데도 막상 혼자서 코드를 작성하려고 하니 잘 되지 않았습니다.게다가 어제 저녁 비기너 문제 풀고 풀이까지 쓰고나니 시간이 너무 늦어서 제출을 한번밖에 못 해 보았습니다.그래도 포기하기는 싫어서'조금만 더 해보고 안되면 그 코드 보면서 다시 코드를 작성해 보아야겠다.'고 생각하고 다시 문제를 풀어보았습니다.💦 나.. 2025. 2. 20.
[백준 | Java] 1524번 세준세비 - Sort 1524번 / 세준세비❓ 세준세비🏷️ 관련 주제 : Sort💦 나의 시도PriorityQueue를 이용한 방법BufferedReader를 이용하여 테스트 케이스 개수를 입력 받아 int형으로 변환 후, int T에 할당0 ~ (T - 1) 범위를 반복문을 돌면서 테스트 케이스 보기StringTokenizer를 이용하여 세준과 세비의 병사수 입력 받기int N에 세준의 병사 수를 입력받아 int형으로 변환 후 할당int M에 세비의 병사 수를 입력받아 int형으로 변환 후 할당PriorityQueue S 선언 : 세준의 병사를 담을 우선순위 큐PriorityQueue B 선언 : 세비의 병사를 담을 우선순위 큐StringTokenizer로 세준의 전체 병사 힘을 입력 받기0 ~ (N - 1) 범위를 반.. 2025. 2. 20.
[백준 | Java] 18870번 좌표 압축 - Sort 18870번 / 좌표 압축❓ 좌표 압축🏷️ 관련 주제 : Sort💦 나의 시도Set과 정렬, Map을 사용한 방법int N에 입력값을 형변환하여 할당 : 입력할 값의 개수StringTokenizer st로 입력값 받기int[] X를 길이 N인 int 배열로 선언 : 입력값을 넣을 배열좌표 압축 결과 $X'_i$의 값은 $X_i$ 보다 작은 서로 다른 $X_j$의 개수서로 다른 값의 개수를 세므로 중복값을 허용하지 않는 Set을 사용해보자.Set xSet을 선언 : X의 원소를 중복되지 않게 담을 Set0 ~ (N - 1) 범위를 반복문 돌기i는 반복문의 int 변수X[i]에 StringTokenizer의 nextToken()값을 변환하여 할당xSet에 X[i] 추가Stream API를 사용하여 xSe.. 2025. 2. 19.
[백준 | Java] 11053번 가장 긴 증가하는 부분 수열 - Dynamic Programming 11053번 / 가장 긴 증가하는 부분 수열❓ 가장 긴 증가하는 부분 수열🏷️ 관련 주제 : Dynamic Programming💦 나의 시도어제도 다이나믹 프로그래밍 문제가 나와서 알고리즘 정리할 때, LIS(Longest Increasing Subsequence)를 봤었는데풀이 방법이 정확히 생각나지 않아 LCS(Longest Common Subsequence) 문제 풀이 코드 따라 쓰면서 사용했던 방법을 생각하며 문제를 풀어보았습니다.제일 앞 숫자부터 차례대로 뒷 숫자 탐색, 큰 값이 나오면 개수 및 마지막 숫자 업데이트int N 선언 : 입력할 숫자 개수int[] A 선언 : 입력한 숫자를 차례대로 담을 길이 N인 배열int[] lastElement 선언 : i번째 인덱스에 A[i]에서 시작한 .. 2025. 2. 19.
[백준 | Java] 1003번 피보나치 함수 - Dynamic Programming 1003번 / 피보나치 함수❓ 피보나치 함수🏷️ 관련 주제 : Dynamic Programming💦 나의 시도int fibonacci(int n) { if (n == 0) { printf("0"); return 0; } else if (n == 1) { printf("1"); return 1; } else { return fibonacci(n‐1) + fibonacci(n‐2); }}n이 0 일 때, int zero 1 증가, n이 1일 때, int one 1증가하는 fibonacci() 메서드 만들기인스턴스 변수 선언public static int zero : 0이 출력되는 횟수를 할당할 변수public static.. 2025. 2. 18.
[백준 | Java] 20291번 파일 정리 - String, Sort, Map 20291번 / 파일 정리❓ 파일 정리🏷️ 관련 주제 : String Sort Map💦 나의 시도String split()과 Map을 이용한 방법입력받을 문자열 개수를 입력 받아 int형으로 변환 후, int N에 할당확장자와 개수를 담을 Map extensions를 선언키 : 확장자값 : 개수0 ~ (N - 1) 범위를 반복문을 돌면서 extensions에 확장자와 개수 추가확장자를 가져와 String e에 할당String e = br.readLine().split(".")[1];extensions의 키 e에 대한 값을 1 증가extensions.put(e, extensions.getOrDefault(e, 0) + 1);Stream API를 이용하여 extensions의 키를 알파벳순으로 오름차순 .. 2025. 2. 18.
728x90