🌞Algorithm/🔥Baekjoon

[Baekjoon] 6230_Buy One Get One Free

뿌야._. 2026. 3. 16. 16:25
문제(출처: https://www.acmicpc.net/problem/6230)

< Buy One Get One Free >

 

문제 풀이 

 

고품질 건초 더미와 저품질 건초 더미를 각각 오름차순으로 정렬 후 고품질 건초 더미를 탐색하며 그보다 작은 저품질 건초 더미가 있다면 같이 가져간다. 

 

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 _6230_ { // Buy One Get One Free

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(bf.readLine());

		int n = Integer.parseInt(st.nextToken());
		int m = Integer.parseInt(st.nextToken());

		int a[] = new int[n];
		int b[] = new int[m];

		for (int i = 0; i < n; i++) {
			a[i] = Integer.parseInt(bf.readLine());
		}

		for (int i = 0; i < m; i++) {
			b[i] = Integer.parseInt(bf.readLine());
		}

		Arrays.sort(a);
		Arrays.sort(b);

		int idx = 0, result = 0;
		for (int i = 0; i < n; i++) {
			result += 1;
			while (idx < m) {
				if (b[idx] < a[i]) {
					idx += 1;
					result += 1;
				}
				break;
			}
		}
		System.out.println(result);
	}
}
변수)
n , m : 고품질, 저품질 건초 더미 개수
a, b : 각 건초 더미 크기 
idx : 저품질 건초더미 위치
result : 얻을 수 있는 건초 더미의 총 개수 

 

고품질, 저품질 건초 더미 개수를 입력받는다. 각 개수만큼 크기를 입력받아 배열 a, b에 각각 저장한다. 무료로 받는 저품질 건초의 크기가 구매한 고품질 건초보다 반드시 작아야 하므로 각 배열을 오름차순으로 정렬한다. 고품질 건초 더미를 탐색하면서 고품질 건초 더미보다 작은 저품질 건초 더미가 있다면 같이 개수를 더한다. 최종 result를 출력한다.  



 

'🌞Algorithm > 🔥Baekjoon' 카테고리의 다른 글

[Baekjoon] 5059_Shopaholic  (0) 2026.03.09
[Baekjoon] 17550_Inquiry I  (0) 2026.03.04
[Baekjoon] 15465_Milk Measurement  (0) 2026.03.03
[Baekjoon] 6119_Cow Line  (0) 2026.02.27
[Baekjoon] 21236_Comfortable Cows  (0) 2026.02.26