문제

 

모바일 게임을 즐겨 하는 지우는 Jetpack Joyride 에 금새 질렸고 포켓몬 GO를 시작했다! 이 게임의 재미있는 점은 포켓몬을 진화시킬 수 있다는 것이다.

지우가 Pi 라는 포켓몬을 진화시키기 위해서는 해당 포켓몬의 Ki 개의 사탕이 필요하다. 진화가 된 후에는 2개의 사탕을 돌려받는다.

각 포켓몬은 그들 종의 사탕으로만 진화할 수 있다.

지우는 N종의 포켓몬이 있고 Pi 라는 포켓몬의 사탕은 Mi 개를 가지고 있으며 지우는 진화시킬 수 있는 포켓몬의 총 마리수를 궁금해한다.

또한, 지우는 가장 많이 진화시킬 수 있는 포켓몬이 무엇인지 알고 싶어한다. 만약 그런 포켓몬들이 여러 종이 있다면 도감번호가 가장 작은 포켓몬을 출력한다. 즉, 입력 데이터에서 더 먼저 나타나는 포켓몬을 출력하면 된다. 

 

입력

첫 번째 줄에는 포켓몬의 종류 수를 나타내는 N (1 ≤ N ≤ 70)이 주어진다.

그 다음 2N 줄에는 N개의 데이터 세트가 입력되는데

  • 2i 번째 줄에는 i번째 포켓몬의 이름을 나타내는 최대길이 20의 Pi 문자열이 주어진다.
  • 2i + 1 번째 줄에는 Ki  (12 ≤ Ki ≤ 400) , Mi (1 ≤ Mi ≤ 104) 가 주어지는데 각각 i 번째 포켓몬이 진화에 필요한 사탕의 수와 지우가 가지고 있는 i 번째 포켓몬의 총 사탕의 수이다.

 

출력

첫 번째 줄엔 진화시킬 수 있는 포켓몬의 총 마리수를 출력한다.

두 번째 줄엔 가장 많이 진화시킬 수 있는 포켓몬의 이름을 출력한다.

 

조건

시간 제한: 1초

메모리 제한: 32MB

 

코드 (Java 11)
import java.util.Scanner;

public class Main
{
    public static void main(String args[])
    {
        Scanner scanner = new Scanner(System.in);
        
        int test=scanner.nextInt(), index=0, result=0, max=-1;
        Pokemon pokemon[]=new Pokemon[test];
        
        for(int t=0;t<test;t++)
        {
            String name=scanner.next();
            int need=scanner.nextInt(), hava=scanner.nextInt();

            pokemon[t]=new Pokemon(name, need, hava);
            int evolution=pokemon[t].get_evolution();

            if(max<evolution)
            {
                index=t;
                max=evolution;
            }
            result+=evolution;
        }
        
        System.out.println(result);
        System.out.println(pokemon[index].name);

        scanner.close();
    }
}

class Pokemon
{
    String name;
    int candy_need, candy_have;

    public Pokemon(String name, int candy_need, int candy_have)
    {
        this.name=name;
        this.candy_need=candy_need;
        this.candy_have=candy_have;
    }
    public int get_evolution()
    {
        int evolution=0;

        while(candy_have>=candy_need)
        {
            candy_have-=candy_need;
            evolution++;
            candy_have+=2;
        }
        return evolution;
    }
}

+ Recent posts