🌷🌼λͺ¨μ—¬λ΄μš” 개발의숲🌷🌼

[JAVA/μ½”λ”©ν…ŒμŠ€νŠΈ] 응급싀 λ³Έλ¬Έ

개발/μ•Œκ³ λ¦¬μ¦˜ λ¬Έμ œν’€μ΄ JAVA

[JAVA/μ½”λ”©ν…ŒμŠ€νŠΈ] 응급싀

μš”μΌμ΄ 2022. 1. 17. 11:38
λ°˜μ‘ν˜•

μ„€λͺ…

메디컬 병원 μ‘κΈ‰μ‹€μ—λŠ” μ˜μ‚¬κ°€ ν•œ λͺ…밖에 μ—†μŠ΅λ‹ˆλ‹€.

응급싀은 ν™˜μžκ°€ λ„μ°©ν•œ μˆœμ„œλŒ€λ‘œ μ§„λ£Œλ₯Ό ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ μœ„ν—˜λ„κ°€ 높은 ν™˜μžλŠ” 빨리 μ‘κΈ‰μ‘°μΉ˜λ₯Ό μ˜μ‚¬κ°€ ν•΄μ•Ό ν•©λ‹ˆλ‹€.

이런 문제λ₯Ό λ³΄μ™„ν•˜κΈ° μœ„ν•΄ 응급싀은 λ‹€μŒκ³Ό 같은 λ°©λ²•μœΌλ‘œ ν™˜μžμ˜ μ§„λ£Œμˆœμ„œλ₯Ό μ •ν•©λ‹ˆλ‹€.

• ν™˜μžκ°€ μ ‘μˆ˜ν•œ μˆœμ„œλŒ€λ‘œμ˜ λͺ©λ‘μ—μ„œ 제일 μ•žμ— μžˆλŠ” ν™˜μžλͺ©λ‘μ„ κΊΌλƒ…λ‹ˆλ‹€.

• λ‚˜λ¨Έμ§€ λŒ€κΈ° λͺ©λ‘μ—μ„œ κΊΌλ‚Έ ν™˜μž 보닀 μœ„ν—˜λ„κ°€ 높은 ν™˜μžκ°€ μ‘΄μž¬ν•˜λ©΄ λŒ€κΈ°λͺ©λ‘ 제일 λ’€λ‘œ λ‹€μ‹œ λ„£μŠ΅λ‹ˆλ‹€. 그렇지 μ•ŠμœΌλ©΄ μ§„λ£Œλ₯Ό λ°›μŠ΅λ‹ˆλ‹€.

즉 λŒ€κΈ°λͺ©λ‘μ— 자기 보닀 μœ„ν—˜λ„κ°€ 높은 ν™˜μžκ°€ 없을 λ•Œ μžμ‹ μ΄ μ§„λ£Œλ₯Ό λ°›λŠ” κ΅¬μ‘°μž…λ‹ˆλ‹€.

ν˜„μž¬ 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.*;

public class Main {

    static class Person{
        int order;
        int score;

        public Person(int order, int score){
            this.order = order;
            this.score = score;
        }
    }


    public static void solution(int n, int m, Queue<Person> qu){

        int result = 0;

        while(!qu.isEmpty()){
            Person tmp = qu.poll();

            for(Person p : qu){
                if(tmp.score < p.score){
                    qu.offer(tmp);
                    tmp=null;
                    break;
                }
            }

            // μœ„ν—˜λ„κ°€ κ°€μž₯ λ†’λ‹€λ©΄
            if(tmp != null){
                result++;
                if(tmp.order == m){
                    System.out.println(result);
                    return;
                }
            }

        }

    }

    public static void main(String[] args) {

        Main main = new Main();
        Scanner kb = new Scanner(System.in);

        int n = kb.nextInt();
        int m = kb.nextInt();

        Queue<Person> qu = new LinkedList<>();

        for(int i=0; i<n; i++){
            qu.offer(new Person(i, kb.nextInt()));
        }

        Main.solution(n, m, qu);
    }


}

 

 

 

Comments