|
์ฝ๋ ์์ฑํ๊ธฐ
package com.programmers.greedy;
import java.util.Arrays;
//https://school.programmers.co.kr/learn/courses/30/lessons/42862
public class Solution {
public int solution(int n, int[] lost, int[] reserve) {
int answer = n - lost.length; //์ ์ฒด ์ธ์ - ์๋ ํ์ = ์ฒด์ก๋ณต ์๋ ํ์
Arrays.sort(lost);
Arrays.sort(reserve);
// !!! ์ฌ๋ฒ ์ฒด์ก๋ณต ์๋ ํ์์ด ๋๋ ๋นํ ๊ฒฝ์ฐ (์ด ๊ฒฝ์ฐ ์ฌ๋ฒํ์,๋๋ํ์ ๋ฐฐ์ด์์ ์ญ์ ํด์ผ ํจ. ๋ค๋ฅธ ํ์ ๋ชป ๋น๋ ค์ฃผ๋๋ก)
for (int i = 0; i < lost.length; i++) {
for (int j = 0; j < reserve.length; j++) {
if (lost[i] == reserve[j]) {
// ์ฌ๋ฒ ์๋ ํ์์ด ๋๋๋นํ์ผ๋ฉด
lost[i] = -1;
reserve[j] = -1;
// ๊ทธ ํ์์ ๋ฐฐ์ด์์ ๋น ์ ธ
answer++; // ์์
์ฐธ์ฌํ ์ ์์ผ๋๊น ++
}
}
}
System.out.println(Arrays.toString(lost));
System.out.println(Arrays.toString(reserve));
// ๋๋ ๋นํ ํ์์๊ฒ ๋น๋ ค์ฃผ๋ ๊ฒฝ์ฐ
for (int i = 0; i < lost.length; i++) { //๋๋ ๋นํ ํ์ ์ ๋งํผ ๋ฐ๋ณต
for (int j = 0; j < reserve.length; j++) { //์ฌ๋ถ ์๋ ํ์ ์ ๋งํผ ๋ฐ๋ณต
if (reserve[j] + 1 == lost[i] || reserve[j] - 1 == lost[i]) {
// ๋ง์ฝ ์ฌ๋ถ ํ์ ์ถ์๋ฒํธ +-1 == ์์ด๋ฒ๋ฆฐ ํ์ ์ถ์๋ฒํธ๋ฉด
answer++; //์ท์ ๋น๋ ค์ค (์์
๋ค์ ์ ์๋ ํ์ ++)
System.out.printf("%d์ ๋ %d๋ฒ์ธ๋ฐ ๋ด๊ฐ ๋น๋ ค์ค\n", lost[i], reserve[j]);
reserve[i] = 0;
lost[i] = 0;
}
}
}
System.out.println(answer);
return answer; //์์
๋ค์ ์ ์๋ ํ์์ ์ต๋๊ฐ return
}
public static void main(String[] args) {
Solution solution = new Solution();
int n = 5; //์ ์ฒด ํ์์ (2 <= n <= 30)
int[] lost = {5,4,2}; //๋๋๋นํ ํ์๋ค์ ๋ฒํธ (1 <= ๋๋ ๋นํ ํ์ ์ <= n)
int[] reserve = {2,4};//์ฌ๋ฒ์ ์ฒด์ก๋ณต์ ๊ฐ์ง ํ์๋ค์ ๋ฒํธ (1 <= ์ฌ๋ฒ ์๋ ํ์ ์ <= n)
// !!! ์ฌ๋ฒ ์ฒด์ก๋ณต ์๋ ํ์์ด ๋๋ ๋นํ ์ ์์. ๊ทธ๋ผ ์๊ธฐ ์ฒด์ก๋ณต ํ๋๋ง ์๋ ๊ฒ์.
solution.solution(n, lost, reserve);
}
}
Java
๋ณต์ฌ
|
์ฝ๋ ์ค๋ช
ํ๊ธฐ
์ฌ๋ฒ ํ์์ด ๋๋ ๋นํ์ ๋
์ฌ๋ฒ ํ์์ด ๋๋ ๋นํ์ ๋์ ์ ์ฝ ์กฐ๊ฑด์ ๊ผญ ์ฒ๋ฆฌํด์ฃผ์ด์ผ ํ๋ค.
n | lost | reserve |
5 | 2,3 | 1,2 |
์ถ์ ๋ฒํธ๋ฅผ ์ ๋ ฌํด์ผ ํจ
ํ
์คํธ ์ผ์ด์ค
๋ด์ผ ๋ ํด๋ด์ผ๊ฒ ๋ค.
์ด๊ฒ ๋ ๋ฒจ 1์ด๋ผ๋ ใ
ใ
