수학5 백준 1059번: 좋은 구간 문제 풀이 1. 문제 개요백준 1059번 좋은 구간 문제는 특정 정수 (n)을 포함하지 않는 좋은 구간을 찾아, 그 안에서 (n)보다 작은 숫자와 큰 숫자 사이의 조합을 구하는 문제입니다.주어진 숫자 리스트에서 (n)을 포함하지 않는 구간을 찾아 가능한 조합 수를 계산해야 하며, 수학적 사고와 간단한 구현을 요구합니다.2. 접근 방법입력 데이터 처리 및 정렬입력받은 리스트를 정렬하고, 정렬된 리스트의 인접한 수를 사용하여 (n)이 속한 구간을 찾습니다.구간 계산(l): (n)보다 작은 가장 큰 수 + 1(r): (n)보다 큰 가장 작은 수 - 1이 구간을 기준으로 (n)을 포함하지 않는 조합을 계산합니다.조합 공식(n)보다 작은 수에서 (n)보다 큰 수로 가는 조합: ((r - n + 1) \times (n - l.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2024. 12. 5. 같은 것을 포함하는 중복순열: 개념과 계산 방법 1. 중복순열이란?중복순열이란, 주어진 집합에서 원소를 중복하여 선택하여 순서를 고려해 배열하는 방법을 의미합니다. 일반적으로 중복을 허용하지 않는 순열과 달리, 중복순열에서는 동일한 원소가 여러 번 선택될 수 있습니다.2. 같은 것을 포함하는 중복순열이란?같은 것을 포함하는 중복순열이란, 중복된 원소들이 있는 집합에서 그 원소들을 순서 있게 배열하는 방법을 계산하는 것입니다. 예를 들어, "AAB"와 같은 문자열에서 A가 두 번 반복될 때, 이 문자열을 재배열하는 방법의 수를 구하는 것이 이에 해당합니다.특징: 같은 것을 포함하는 순열에서는 중복된 원소들이 있을 경우, 순열의 전체 경우의 수에서 중복된 경우를 제외해야 합니다.3. 같은 것을 포함하는 중복순열의 공식같은 것을 포함하는 중복순열의 수는 다.. 프로그래밍공부(Programming Study)/이산 수학(Discrete Mathematis) 2024. 8. 18. 백준 16430 제리와 톰 package 단순구현; import java.util.Scanner; public class boj_16430_제리와톰 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int A = sc.nextInt(); int B = sc.nextInt(); System.out.print(B-A +" " + B); } } 해당 문제는 다른 문제를 풀다가 머리 식힐겸 풀게된 문제인데 문제는 마치 나눗셈을 유도하는 듯 하지만 나누기연산의 개념이 다른 컴퓨터 내부작동 원리를 어떻게 해결할 지 물어보는 문제 같다. 1kg 기준으로 기약분수 꼴로 나눠야 하므로 결국 1 * B - A / B를 묻는 거나 다름이 없기에 B-A와 B를.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 12. 5. 백준 2587 java - 대표값2(수학, 구현, 사칙연산) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class boj_2587_대표값2 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int midValue, averageValue = 0, inputCount = 5, input[] = new int[inputCount]; for (int i = 0; i < inputCount; i++) {.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 11. 24. 백준 10986 java - 나머지 합(누적합, feat. 골드1달성) 해당 문제는 거의 하루 반나절을 고민했는데 결국 질문 검색의 힌트 + 굇수분들의 도움을 받아 푼 문제다. 누적합 + 수학적 사고력 + 데이터 타입의 조합으로 골드3인데 골드3보다 높아보인다... 1. 일단 구간합이 필요하므로 누적합 필요함. 2. 단순히 누적합끼리 2중 for문을 돌리면 1,000,000 * 1,000,000 = 1초 초과됨 -> 다른 방법 필요 3. 나머지들의 누적합을 활용해보면 나머지가 같은 구간끼리 뺀다면 그게 나머지 0이 됨 4. 나머지 0의 경우 그 자체로도 답이 되고 서로 빼서 구간합 만든 것도 답이 되므로 카운팅할 때 신경 써야함 5. n*(n-1)/2 (nC2)을 구할 때 n이 1,000,000일 경우 int범위를 벗어나므로 long범위로 선언하여야 하며 누적합 배열을 in.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 5. 13. 이전 1 다음 728x90