🌞Algorithm/🔥Baekjoon

[Baekjoon] 13717_포켓몬 GO

뿌야._. 2024. 8. 8. 23:45
문제(출처: https://www.acmicpc.net/problem/13717)

< 포켓몬 GO >

 

문제 풀이 

 

각 진화시킬 수 있는 포켓몬 수를 구해서 ArrayList에 저장한 후 포켓몬 수를 기준으로 내림차순으로 정렬한다.

 

 

 my solution (Java)

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

public class _13717_ { // 포켓몬 GO
	static class Pokemon implements Comparable<Pokemon> {
		private String name;
		private int cnt;

		public Pokemon(String name, int cnt) {
			this.name = name;
			this.cnt = cnt;
		}

		@Override
		public int compareTo(Pokemon o) {
			return o.cnt - this.cnt;
		}
	}

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;

		int n = Integer.parseInt(bf.readLine());

		ArrayList<Pokemon> list = new ArrayList<>();
		int sum = 0;

		for (int i = 0; i < n; i++) {
			String p = bf.readLine();

			st = new StringTokenizer(bf.readLine());
			int k = Integer.parseInt(st.nextToken());
			int m = Integer.parseInt(st.nextToken());

			int cnt = 0;
			while (k <= m) {
				m = m - k + 2;
				cnt += 1;
			}
			sum += cnt;
			list.add(new Pokemon(p, cnt));
		}
		Collections.sort(list);

		System.out.println(sum + "\n" + list.get(0).name);
	}
}
변수)
n : 포켓몬의 종류 수
list : 포켓몬의 종류와 진화시킬 수 있는 수를 저장하는 ArrayList
sum : 진화시킬 수 있는 포켓몬의 총 마리수
p : 포켓몬 이름
k, m : 진화에 필요한 사탕의 수, 가지고 있는 총 사탕의 수
cnt : 각 포켓몬마다 진화시킬 수 있는 수

 

Pokemon

포켓몬의 이름과 진화시킬 수 있는 포켓몬 수를 변수로 가짐

 

Main

포켓몬의 종류 수를 입력받는다. 포켓몬의 종류 수만큼 다음 과정을 반복한다.

 

1) 포켓몬의 이름과 진화에 필요한 사탕의 수, 가지고 있는 총 사탕의 수를 입력받는다.

2) 진화시킬 수 있는 포켓몬 수를 구한다.

3) list에 저장

 

ArrayList를 진화시킬 수 있는 포켓몬 수를 기준으로 내림차순으로 정렬한다. 최종 진화시킬 수 있는 포켓몬의 총 마리수와 가장 많이 진화시킬 수 있는 포켓몬의 이름을 출력한다.



 

'🌞Algorithm > 🔥Baekjoon' 카테고리의 다른 글

[Baekjoon] 11068_회문인 수  (0) 2024.08.26
[Baekjoon] 2238_경매  (0) 2024.08.09
[Baekjoon] 1254_팰린드롬 만들기  (0) 2024.08.07
[Baekjoon] 2304_창고 다각형  (0) 2024.08.05
[Baekjoon] 2508_사탕 박사 고창영  (0) 2024.08.02