Ex043
μ€λͺ
λ©λ컬 λ³μ μκΈμ€μλ μμ¬κ° ν λͺ λ°μ μμ΅λλ€.
μκΈμ€μ νμκ° λμ°©ν μμλλ‘ μ§λ£λ₯Ό ν©λλ€. νμ§λ§ μνλκ° λμ νμλ 빨리 μκΈμ‘°μΉλ₯Ό μμ¬κ° ν΄μΌ ν©λλ€.
μ΄λ° λ¬Έμ λ₯Ό 보μνκΈ° μν΄ μκΈμ€μ λ€μκ³Ό κ°μ λ°©λ²μΌλ‘ νμμ μ§λ£μμλ₯Ό μ ν©λλ€.
• νμκ° μ μν μμλλ‘μ λͺ©λ‘μμ μ μΌ μμ μλ νμλͺ©λ‘μ κΊΌλ λλ€.
• λλ¨Έμ§ λκΈ° λͺ©λ‘μμ κΊΌλΈ νμ λ³΄λ€ μνλκ° λμ νμκ° μ‘΄μ¬νλ©΄ λκΈ°λͺ©λ‘ μ μΌ λ€λ‘ λ€μ λ£μ΅λλ€. κ·Έλ μ§ μμΌλ©΄ μ§λ£λ₯Ό λ°μ΅λλ€.
μ¦ λκΈ°λͺ©λ‘μ μκΈ° λ³΄λ€ μνλκ° λμ νμκ° μμ λ μμ μ΄ μ§λ£λ₯Ό λ°λ ꡬ쑰μ λλ€.
νμ¬ Nλͺ μ νμκ° λκΈ°λͺ©λ‘μ μμ΅λλ€.
Nλͺ μ λκΈ°λͺ©λ‘ μμμ νμ μνλκ° μ£Όμ΄μ§λ©΄, λκΈ°λͺ©λ‘μμ Mλ²μ§Έ νμλ λͺ λ²μ§Έλ‘ μ§λ£λ₯Ό λ°λμ§ μΆλ ₯νλ νλ‘κ·Έλ¨μ μμ±νμΈμ.
λκΈ°λͺ©λ‘μμ Mλ²μ§Έλ λκΈ°λͺ©λ‘μ μ μΌ μ²μ νμλ₯Ό 0λ²μ§Έλ‘ κ°μ£Όνμ¬ ννν κ²μ λλ€.
μ λ ₯
첫 μ€μ μμ°μ N(5<=N<=100)κ³Ό M(0<=M<N) μ£Όμ΄μ§λλ€.
λ λ²μ§Έ μ€μ μ μν μμλλ‘ νμμ μνλ(50<=μνλ<=100)κ° μ£Όμ΄μ§λλ€.
μνλλ κ°μ΄ λμ μλ‘ λ μννλ€λ λ»μ λλ€. κ°μ κ°μ μνλκ° μ‘΄μ¬ν μ μμ΅λλ€.
μΆλ ₯
Mλ²μ§Έ νμμ λͺ λ²μ§Έλ‘ μ§λ£λ°λμ§ μΆλ ₯νμΈμ.
μμ μ λ ₯ 1
5 2
60 50 70 80 90
μμ μΆλ ₯ 1
3
μμ μ λ ₯ 2
6 3
70 60 90 60 60 60
μμ μΆλ ₯ 2
4
νμ΄
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
class Person{
int id;
int priority;
public Person(int id, int priority) {
this.id = id;
this.priority = priority;
}
}
public class Ex043 {
public int solution(int n, int m, int[] arr) {
//μκΈμ€
int answer = 0;
Queue<Person> Q = new LinkedList<>();
for(int i=0; i<n; i++) {
Q.offer(new Person(i, arr[i]));
}
while(!Q.isEmpty()) {
Person tmp = Q.poll();
for(Person x : Q) {
if(x.priority>tmp.priority) { //μ°μ μμ λμ νμ λ°κ²¬μ break
Q.offer(tmp);
tmp = null;
break;
}
}
if(tmp!=null) { //μ°μ μμ κ°μ₯ λμ λ
answer++;
if(tmp.id==m) return answer;
}
}
return answer;
//λ΄νμ΄(X) > 6 0 60 60 60 90 60 60 60 μΌλ λ΅μ 5
//μμ λ³΄λ€ ν° μκ±°λ, κ°μΌλ©΄μ μκΈ°λ³΄λ€ μμ μλ μ
// int answer = 1;
// Queue<Integer> Q = new LinkedList<>();
// int max = arr[m];
// for(int x : arr) {
// Q.offer(x);
// }
//
// for(int i=0; i<m; i++) {
// if(Q.poll()>=max) {
// answer++;
// }
// }
// for(int i=m; i<n; i++) {
// if(Q.poll()>max) {
// an)swer++;
// }
// }
//
// return answer;
}
public static void main(String[] args) {
Ex043 T = new Ex043();
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
int m = kb.nextInt();
int[] arr = new int[n];
for(int i=0; i<n; i++) {
arr[i] = kb.nextInt();
}
System.out.println(T.solution(n, m, arr));
}
}
'νλ‘κ·Έλλ° κ³΅λΆ > μ½ν ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μΈνλ°] Two Pointers μ€λ΅νμ΄ (0) | 2023.09.13 |
---|---|
[μΈνλ°] Array μ€λ΅νμ΄ (0) | 2023.08.25 |
[μΈνλ°] String μ€λ΅νμ΄ (0) | 2023.08.19 |