백준 13717 자바

손찬호·2024년 5월 14일
0

알고리즘

목록 보기
41/91

https://www.acmicpc.net/problem/13717

풀이 아이디어

진화시킬 총 마리 수는 입력을 받으면서 계속 세어주고
가장 많이 진화를 한 포켓몬의 이름은
한 포켓몬이 진화한 횟수를 순서대로 계속 비교해가며
기존 포켓몬보다 진화를 많이 한 경우 이름을 갱신해준다.

풀이 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class _13717 {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());

        int totalRevolutions = 0; // 진화시킬 수 있는 총 마리수
        String maxRevolutionPokemon = ""; // 진화시킬 수 있는 총 마리수 중 가장 많은 진화를 한 포켓몬의 이름
        int maxRevolution = 0; // 진화시킬 수 있는 총 마리수 중 가장 많은 진화를 한 포켓몬의 진화수
        StringTokenizer st;

        for(int i=0;i<n;i++){
            int currentRevolution = 0; // 현재 포켓몬의 진화수
            String name = br.readLine(); // 현재 포켓몬 이름
            st = new StringTokenizer(br.readLine(), " ");
            int needCandy = Integer.parseInt(st.nextToken()); // 진화에 필요한 사탕의 수
            int totalCandy = Integer.parseInt(st.nextToken()); // 가지고 있는 총 사탕의 수
            while(totalCandy >= needCandy){
                totalRevolutions++;
                currentRevolution++;
                totalCandy -= needCandy;
                totalCandy+=2;
            }
            // 가장 많은 진화를 한 포켓몬의 진화수와 이름을 저장
            if(currentRevolution > maxRevolution){
                maxRevolution = currentRevolution;
                maxRevolutionPokemon = name;
            }
        }
        System.out.println(totalRevolutions+"\n"+maxRevolutionPokemon);
    }
}
profile
매일 1%씩 성장하려는 주니어 개발자입니다.

0개의 댓글

관련 채용 정보