본문 바로가기

백준

(62)
[백준] 수 찾기 1920번 코드 힌트자료구조: HashMap을 사용하여 문자열의 존재 여부를 빠르게 확인하는 것이 핵심입니다.입출력 최적화: BufferedReader와 BufferedWriter를 사용하여 대량의 입력과 출력을 효율적으로 처리합니다.문자열 처리: 입력된 문자열을 공백으로 분리하여 배열에 저장하고, 이를 해시맵과 비교하여 결과를 도출합니다. 정답은 더보기 클릭더보기import java.util.*;import java.io.*;public class Main { public static void main(String[] args) throws NumberFormatException, IOException { // 입력을 효율적으로 받기 위해 BufferedReader 사용 Buffer..
[백준] 최대공약수 1850번 코드 힌트Buffered 사용하여 받고 출력하기BufferedReader와 BufferedWriter를 사용하여 입력과 출력을 처리합니다.BufferedReader는 입력을 받고, BufferedWriter는 출력을 담당합니다.(Java) 숫자로 변환할 때 long타입으로 받아야합니다.최대공약수 구하기유클리드 호제법을 사용하여 두 수의 최대공약수를 구합니다.유클리드 호제법은 반복적으로 나머지를 구하여 최대공약수를 찾는 방법입니다.최대공약수 구하는 방법은 여기를 클릭하세요"1"를 최대공약수 만큼 출력시키기구한 최대공약수의 값만큼 '1'을 출력합니다.예를 들어, 최대공약수가 5이면 '1'을 5번 출력합니다.  정답은 더보기 클릭더보기import java.io.*;public class Main { ..
[백준] 피보나치 함수 1003번 코드 힌트피보나치 수 파악하기:피보나치 수열의 규칙은 n = (n-1) + (n-2)입니다.예를 들어, n이 4라면, f(4) = f(3) + f(2)입니다.0과 1의 호출 횟수 구하기:피보나치 수를 계산하는 과정에서 f(0)과 f(1)이 호출되는 횟수를 찾는 문제입니다.n이 0과 1일 때를 제외하고, f(0)의 호출 횟수는 piboArr[n-1], f(1)의 호출 횟수는 piboArr[n]입니다.문제에서 주어지는 n의 범위가 0에서 40이므로, 미리 0부터 40까지의 피보나치 수를 계산해두면 빠르게 답을 찾을 수 있습니다.규칙을 파악해서 코드로 작성해보세요nf(0)f(1)010101211312423535658781381321 정답은 더보기 클릭더보기import java.util.Scanner;publi..
[백준] 커트라인 25305번 문제 힌트입력 데이터 처리:첫 번째 입력 줄은 공백으로 구분된 두 개의 정수 n과 cutLine을 포함합니다. n은 점수의 개수, cutLine은 컷라인 순위를 나타냅니다.두 번째 입력 줄은 공백으로 구분된 n개의 정수 점수를 포함합니다.정렬:점수를 내림차순으로 정렬합니다. 이를 위해 삽입 정렬(insertion sort) 알고리즘을 사용합니다. 내림차순 정렬을 위해서는 정렬 조건을 변경해야 합니다.컷라인 점수 출력:정렬된 점수 배열에서 cutLine에 해당하는 점수를 출력합니다. 컷라인 순위는 1-based 인덱스를 사용하므로, 배열의 인덱스는 cutLine-1이 됩니다.정렬 알고리즘:Arrays.sort()를 사용하셔서 for문을 돌리셔도 됩니다.저는 삽입 정렬을 사용햇습니다배열의 첫 번째 요소는 이..
[백준] 대표값2 2587번 문제 힌트정렬된 배열에서 중앙값 찾기:문제에서 주어진 5개의 정수를 입력받습니다.배열에 저장한 후, 해당 배열을 정렬합니다.정렬된 배열에서 중앙값을 찾기 위해 배열의 세 번째 요소를 출력합니다. (배열 인덱스는 0부터 시작하므로 arr[2]가 중앙값이 됩니다.)정렬 알고리즘 사용:삽입 정렬: 정렬되지 않은 부분에서 하나의 요소를 선택하여 이미 정렬된 부분에 삽입하는 방식으로 배열을 정렬합니다.버블 정렬: 인접한 두 요소를 비교하여 순서가 잘못된 경우 위치를 바꾸면서 배열을 정렬합니다. 큰 값이 점차 뒤로 이동하므로, 거품이 위로 올라가는 것과 비슷합니다.배열의 평균값 구하기:입력받은 5개의 정수를 더한 후, 5로 나누어 평균값을 구합니다.평균값을 출력합니다.필요한 입력:5개의 정수를 각각 입력받아 배열에..
[백준] 블랙잭 2798 코드 힌트입력 값을 처리하기:nextLine()을 사용해 입력 값을 한 줄씩 읽어오고, split()을 사용해 공백을 기준으로 분리합니다.첫 번째 입력 값 처리:첫 번째 입력 값은 카드의 개수와 카드 합의 최댓값을 나타냅니다.두 번째 입력 값 처리:두 번째 입력 값은 각 카드의 숫자를 나타냅니다.조합을 구하기:주어진 카드 숫자들로 조합을 구합니다. 이를 위해 백트래킹 또는 재귀함수를 사용합니다.최댓값 계산:조합의 합이 주어진 최댓값을 넘지 않는 경우, 그 중에서 가장 큰 합을 찾습니다. 정답은 더보기 클릭더보기import java.util.*;public class Main { // 조합의 합 중 최대 값을 저장할 변수 static int maximum = 0; // 카드 합의 최댓값 ..