πβοΈ λ¬Έμ μ€λͺ
μ μ¬μκ°μ λλμ΄ λ€μ΄, μΌλΆ νμμ΄ μ²΄μ‘볡μ λλλΉνμ΅λλ€. λ€νν μ¬λ² 체μ‘λ³΅μ΄ μλ νμμ΄ μ΄λ€μκ² μ²΄μ‘볡μ λΉλ €μ£Όλ € ν©λλ€. νμλ€μ λ²νΈλ 체격 μμΌλ‘ λ§€κ²¨μ Έ μμ΄, λ°λ‘ μλ²νΈμ νμμ΄λ λ°λ‘ λ·λ²νΈμ νμμκ²λ§ 체μ‘볡μ λΉλ €μ€ μ μμ΅λλ€. μλ₯Ό λ€μ΄, 4λ² νμμ 3λ² νμμ΄λ 5λ² νμμκ²λ§ 체μ‘볡μ λΉλ €μ€ μ μμ΅λλ€. 체μ‘λ³΅μ΄ μμΌλ©΄ μμ μ λ€μ μ μκΈ° λλ¬Έμ 체μ‘볡μ μ μ ν λΉλ € μ΅λν λ§μ νμμ΄ μ²΄μ‘μμ μ λ€μ΄μΌ ν©λλ€.
μ 체 νμμ μ n, 체μ‘볡μ λλλΉν νμλ€μ λ²νΈκ° λ΄κΈ΄ λ°°μ΄ lost, μ¬λ²μ 체μ‘볡μ κ°μ Έμ¨ νμλ€μ λ²νΈκ° λ΄κΈ΄ λ°°μ΄ reserveκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, 체μ‘μμ μ λ€μ μ μλ νμμ μ΅λκ°μ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
β μ νμ¬ν
- μ 체 νμμ μλ 2λͺ μ΄μ 30λͺ μ΄νμ λλ€.
- 체μ‘볡μ λλλΉν νμμ μλ 1λͺ μ΄μ nλͺ μ΄νμ΄κ³ μ€λ³΅λλ λ²νΈλ μμ΅λλ€.
- μ¬λ²μ 체μ‘볡μ κ°μ Έμ¨ νμμ μλ 1λͺ μ΄μ nλͺ μ΄νμ΄κ³ μ€λ³΅λλ λ²νΈλ μμ΅λλ€.
- μ¬λ² 체μ‘λ³΅μ΄ μλ νμλ§ λ€λ₯Έ νμμκ² μ²΄μ‘볡μ λΉλ €μ€ μ μμ΅λλ€.
- μ¬λ² 체μ‘볡μ κ°μ Έμ¨ νμμ΄ μ²΄μ‘볡μ λλλΉνμ μ μμ΅λλ€. μ΄λ μ΄ νμμ 체μ‘볡μ νλλ§ λλλΉνλ€κ³ κ°μ νλ©°, λ¨μ 체μ‘λ³΅μ΄ νλμ΄κΈ°μ λ€λ₯Έ νμμκ²λ 체μ‘볡μ λΉλ €μ€ μ μμ΅λλ€.
π‘ μ μΆλ ₯ μ
μ μΆλ ₯ μ #1
1λ² νμμ΄ 2λ² νμμκ² μ²΄μ‘볡μ λΉλ €μ£Όκ³ , 3λ² νμμ΄λ 5λ² νμμ΄ 4λ² νμμκ² μ²΄μ‘볡μ λΉλ €μ£Όλ©΄ νμ 5λͺ μ΄ μ²΄μ‘μμ μ λ€μ μ μμ΅λλ€.
μ μΆλ ₯ μ #2
3λ² νμμ΄ 2λ² νμμ΄λ 4λ² νμμκ² μ²΄μ‘볡μ λΉλ €μ£Όλ©΄ νμ 4λͺ μ΄ μ²΄μ‘μμ μ λ€μ μ μμ΅λλ€.
π© λ΄ νμ΄
class Solution_체μ‘볡2 {
public int solution(int n, int[] lost, int[] reserve) {
int answer = n; // μ΄κΈ° κ°λ₯ν νμ μλ μ 체 νμ μλ‘ μ΄κΈ°ν
int[] people = new int[n]; // νμλ€μ μνλ₯Ό μ μ₯νλ λ°°μ΄ (0: 체μ‘볡 μλ μν, -1: 체μ‘볡 μλ μν, 1: μ¬λΆ 체μ‘볡 μλ μν)
// people λ°°μ΄ μ΄κΈ°ν: λͺ¨λ νμλ€μ 체μ‘볡 μνλ₯Ό 0μΌλ‘ μ€μ (체μ‘볡 μλ μν)
for (int i = 0; i < n; i++) {
people[i] = 0;
}
// 체μ‘볡μ μμ΄λ²λ¦° νμλ€μ λν μ²λ¦¬
for (int l : lost) {
people[l - 1]--; // 체μ‘볡μ μμ΄λ²λ¦° νμ μμΉλ₯Ό μΈλ±μ€λ‘ λ³ννμ¬ ν΄λΉ μμΉμ κ°μ 1 κ°μμν΄
}
// μ¬λΆμ 체μ‘볡μ κ°μ§ νμλ€μ λν μ²λ¦¬
for (int r : reserve) {
people[r - 1]++; // μ¬λΆμ 체μ‘볡μ κ°μ§ νμ μμΉλ₯Ό μΈλ±μ€λ‘ λ³ννμ¬ ν΄λΉ μμΉμ κ°μ 1 μ¦κ°μν΄
}
// 체μ‘볡μ λΉλ €μ£Όλ μ²λ¦¬
for (int i = 0; i < people.length; i++) {
if (people[i] == -1) { // 체μ‘볡μ μμ΄λ²λ¦° νμμ μ°Ύμ
if (i - 1 >= 0 && people[i - 1] == 1) { // μΌμͺ½ νμμ΄ μ¬λΆμ 체μ‘볡μ κ°μ§ κ²½μ°
people[i]++; // νμ¬ νμμκ² μ²΄μ‘볡μ λΉλ €μ€
people[i - 1]--; // μΌμͺ½ νμμ μ¬λΆ 체μ‘볡 κ°μ κ°μ
} else if (i + 1 < people.length && people[i + 1] == 1) { // μ€λ₯Έμͺ½ νμμ΄ μ¬λΆμ 체μ‘볡μ κ°μ§ κ²½μ°
people[i]++; // νμ¬ νμμκ² μ²΄μ‘볡μ λΉλ €μ€
people[i + 1]--; // μ€λ₯Έμͺ½ νμμ μ¬λΆ 체μ‘볡 κ°μ κ°μ
} else {
answer--; // μ£Όμ νμ μ€ μ¬λΆ 체μ‘볡μ κ°μ§ νμμ΄ μλ κ²½μ°, νμ¬ νμμ 체μ‘볡μ μ
μ§ λͺ»νλ―λ‘ μ 체 κ°λ₯ν νμ μμμ κ°μ
}
}
}
return answer; // μ΅μ’
μ μΌλ‘ κ°λ₯ν νμ μλ₯Ό λ°ν
}
}
public class codingTest_체μ‘볡2 {
public static void main(String[] args) {
Solution_체μ‘볡2 T = new Solution_체μ‘볡2();
int[] lost = {2,4};
int[] reserve = {1,3,5};
System.out.println(T.solution(5,lost,reserve));
}
}
νμλ€μ μνλ₯Ό people λ°°μ΄λ‘ μ§μ νκ³ ,
0: 체μ‘볡 μλ μν, -1: 체μ‘볡 μλ μν, 1: μ¬λΆ 체μ‘볡 μλ μν λ‘ λ§λ νμ,
μΈμ νμμ 체μ‘볡 μ¬λΆμ λ°λΌ λνκ³ λΉΌκ³ λ₯Ό λ°λ³΅νμ¬ answerλ₯Ό λμΆν΄ λ΄λ λ°©μμΌλ‘ νμλ€.
'Back-end > Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νλ‘κ·Έλλ¨Έμ€] μΆμ΅ μ μ (java) (0) | 2023.08.19 |
---|---|
[νλ‘κ·Έλλ¨Έμ€] νλ²κ±° λ§λ€κΈ° (java) (0) | 2023.08.18 |
[νλ‘κ·Έλλ¨Έμ€] λͺ¨μκ³ μ¬ (java) - μμ νμ (0) | 2023.08.16 |
[νλ‘κ·Έλλ¨Έμ€] μμ μ°ΎκΈ° (java) (0) | 2023.08.13 |
[νλ‘κ·Έλλ¨Έμ€] μ½λΌ λ¬Έμ (java) (0) | 2023.08.12 |