๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/16938)
< ์บ ํ ์ค๋น >
๋ฌธ์ ํ์ด
๋ฌธ์ ๋ฅผ ๊ณจ๋์ ๋์ ๊ณ ๋ฅด์ง ์์์ ๋ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ๊ตฌํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class _16938_ { // ์บ ํ ์ค๋น
static int arr[], n, l, r, x, result;
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(bf.readLine());
n = Integer.parseInt(st.nextToken());
l = Integer.parseInt(st.nextToken());
r = Integer.parseInt(st.nextToken());
x = Integer.parseInt(st.nextToken());
arr = new int[n];
result = 0;
st = new StringTokenizer(bf.readLine());
for (int i = 0; i < n; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(arr);
search(0, 0, arr[n-1], -1);
System.out.println(result);
}
private static void search(int sum, int idx, int min, int max) {
if (idx == n || sum > r) {
if (sum >= l && sum <= r && max - min >= x) {
result += 1;
}
return;
}
search(sum + arr[idx], idx + 1, Math.min(min, arr[idx]), Math.max(max, arr[idx]));
search(sum, idx + 1, min, max);
}
}
๋ณ์)
n, l, r, x : ๋ฌธ์ ์, ๋์ด๋์ ํฉ ์กฐ๊ฑด, ๋์ด๋ ์ฐจ ์กฐ๊ฑด
arr : ๋ฌธ์ ๋์ด๋
result : ๋ฌธ์ ๋ฅผ ๊ณ ๋ฅด๋ ๋ฐฉ๋ฒ์ ์
๋ฌธ์ ์์ ๋ฌธ์ ๋์ด๋์ ํฉ ์กฐ๊ฑด, ๋์ด๋ ์ฐจ ์กฐ๊ฑด์ ์ ๋ ฅ๋ฐ๋๋ค. ๋ฌธ์ ์๋งํผ ๋ฌธ์ ๋์ด๋๋ฅผ ์ ๋ ฅ๋ฐ์ ํ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค. search ํจ์๋ฅผ ํตํด ์บ ํ์ ์ฌ์ฉํ ๋ฌธ์ ๋ฅผ ๊ณ ๋ฅด๋ ๋ฐฉ๋ฒ์ ์๋ฅผ ๊ตฌํด ์ถ๋ ฅํ๋ค.
search ( ๋ฌธ์ ๋์ด๋ ํฉ, ์ธ๋ฑ์ค, ๊ฐ์ฅ ์ฌ์ด ๋ฌธ์ ์ ๋์ด๋, ๊ฐ์ฅ ์ด๋ ค์ด ๋ฌธ์ ์ ๋์ด๋)
๋ฌธ์ ๋ฅผ ๋ค ๊ณจ๋๊ณ ๋ฌธ์ ๋์ด๋์ ํฉ์ด l์ด์ r์ดํ์ด๋ฉฐ ๋์ด๋์ ์ฐจ๊ฐ x์ด์์ด๋ผ๋ฉด result +1 ํ return, ๋ฌธ์ ๋์ด๋ ํฉ์ด r๋ณด๋ค ํฌ๋ค๋ฉด ๋ค์ ๊ณ์ฐ์ ํ ํ์ ์์ผ๋ฏ๋ก return ํ๋ค.
๋ฌธ์ ๋ฅผ ํฌํจ์์ผฐ์ ๊ฒฝ์ฐ์ ๋ฌธ์ ๋ฅผ ํฌํจ์ํค์ง ์์์ ๊ฒฝ์ฐ ๊ฐ๊ฐ ๊ณ์ฐ์ ์ํด search ํจ์๋ฅผ ํธ์ถํ๋ค.

'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 1083_์ํธ (0) | 2024.03.19 |
---|---|
[Baekjoon] 12931_๋ ๋ฐฐ ๋ํ๊ธฐ (0) | 2024.03.18 |
[Baekjoon] 5549_ํ์ฑ ํ์ฌ (0) | 2024.03.14 |
[Baekjoon] 1990_์์์ธํฐ๋ฆฐ๋๋กฌ (0) | 2024.03.13 |
[Baekjoon] 1456_๊ฑฐ์ ์์ (0) | 2024.03.12 |