목록Java (371)
기록방
👉 문제링크 11656번: 접미사 배열 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. www.acmicpc.net 🔸 문제 분석 🔸 입력된 문자열의 접미사를 사전순으로 정렬해 출력한다. 문자열의 인덱스를 0부터 끝, 1부터 끝, 2부터 끝 ... 형식으로 접미사를 뽑아낸다. 🔸 코드 🔸 import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); String[] arr = new String[str..
👉 문제링크 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 🔸 문제 분석 🔸 n개의 마을이 일렬로 주어지며 n-1개의 도로가 있다. 마을마다 1L당 기름값이 주어지며, 도로 1km당 기름 1L가 필요하다. 최종 기름값의 최소값을 출력한다. 전형적인 그리디 알고리즘 문제이다. 가장 가성비 좋게 기름을 구입하기 위해서, 최종 도시에서 거꾸로 빼는 방식으로 계산한다. 도로의 길이와 도시 별 기름값의 최대 값이 10억이므로 long형을 사용한다. 🔸 코드 🔸 import java.io.BufferedR..
👉 문제링크 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net 🔸 문제 분석 🔸 타일을 놓는 경우의 수를 n에 따라 나열하면 1, 2, 3, 5, 8...순으로 피보나치 수열이다. 🔸 코드 🔸 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] dp = new int[n+2]; dp[1] = 1; d..
👉 문제링크 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 🔸 문제 분석 🔸 N일동안 업무를 수행한다. N개의 업무의 처리에 필요한 시간 t와 받는 금액 p가 있다. 처리에 필요한 시간이 N일을 넘으면 처리 불가능하다. 받을 수 있는 금액의 최대값을 출력한다. 재귀 메소드로 브루트 포스 방식으로 풀이할 수 있다. 다이나믹 프로그래밍 방식으로 풀이할 수 있다. 🔸 코드 🔸 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] t = ..
👉 문제링크 15657번: N과 M (8) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 🔸 문제 분석 🔸 n개의 수 중에서 m개를 뽑는 경우의 수를 출력한다. 수열은 중복되면 안되며 비내림차순, 사전순 증가순서이다. 재귀메소드를 사용해서 m개의 수를 고른다. 🔸 코드 🔸 import java.util.ArrayList; import java.util.Arrays; import java.util.Scanner; public class Main { private static void dfs(int[] arr, ArrayList pi..