[Java] Comment sortir de Janken (équivalent à paiza rang A)

Qu'est-ce que paiza?

site officiel de paiza Un endroit où vous écrivez un programme, le classez et l'évaluez Vous pouvez faire appel à votre capacité de programmation à l'entreprise que vous recherchez (Je ne pense pas que ce soit pratique, mais si vous le résolvez correctement, vous pouvez voir qu'il a la capacité minimale.)

Le problème à résoudre cette fois

Problème: Comment sortir de Janken ・ Nombre total de jeux N ・ Indice total M ・ Rangée S de la main de l'adversaire 3 sont donnés comme entrées, et le problème de la détermination du nombre maximum de victoires contre la main de l'adversaire lorsque le nombre total de jeux et l'indice total sont utilisés exactement Pour plus de détails, cliquez sur

Code de réponse et résultat

import java.util.ArrayList;
import java.util.Scanner;

/**
 *Comment sortir les mains de Janken(équivalent à paiza rang A)
 */
public class AS001{

	public static void main(String[] args) {

		//contribution
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int m = sc.nextInt();
		char[] handArray = sc.next().toCharArray();


		//Analyse de la main de l'adversaire
		int[] handCount = new int[3]; //{G, C, P}
		for(char hand : handArray) {
			switch(hand) {
			case 'G':
				handCount[0]++;
				break;
			case 'C':
				handCount[1]++;
				break;
			case 'P':
				handCount[2]++;
				break;
			}//switch
		}//for


		//Énumération des modèles de main
		ArrayList<Integer[]> patternList = new ArrayList<>(100);
		for(int i = 0; i <= n; i++) {
			for(int j = 0; j <= n; j++) {
				int yubi = i * 2 + j * 5; //indice
				int remain = n - i - j; //Nombre de parties restantes

				if(yubi == m && remain >= 0) {
					//Combinaison qui utilise les doigts dans le nombre total de jeux
					Integer[] pattern = {remain, i, j}; //{g, c, p}
					patternList.add(pattern);
				}else if(yubi > m || remain < 0) {
					//Si le nombre de jeux est épuisé ou que l'indice est dépassé, la boucle suivante
					break;
				}//if
			}//for
		}//for


		//Calculez le modèle de gains maximum
		int maxWin = 0;
		for(Integer[] pattern : patternList) {
			int win = 0;
			win += Math.min(handCount[0], pattern[2]); //L'autre partie est goo, je suis par
			win += Math.min(handCount[2], pattern[1]); //L'autre partie est normale, je suis choki
			win += Math.min(handCount[1], pattern[0]); //L'autre partie est choki, je suis goo
			if(win > maxWin) maxWin = win;
		}//for


		//production
		System.out.println(maxWin);
	}//main
}//class

résultat

Tout le temps d'exécution est de 0,10 seconde

Comment éteindre Janken_résultat.png

Recommended Posts

[Java] Comment sortir de Janken (équivalent à paiza rang A)
Comment créer un conteneur Java
Comment atteindre le rang D de Paiza
Comment créer un tableau Java
Comment créer un résumé de calendrier Java
[Introduction à Java] Comment écrire un programme Java
Comment créer un robot Discord (Java)
Comment afficher une page Web en Java
Comment convertir un contrat de solidité en une classe de contrat Java
Comment atteindre le rang C de Paiza (méthode Times)
Comment passer d'Eclipse Java à un fichier SQL
java: Comment écrire une liste de types génériques [Note]
Comment créer un URI de données (base64) en Java
[Java] Comment obtenir une requête par communication HTTP
[Java] Comment exécuter des tâches régulièrement
[Java] Comment découper une chaîne de caractères caractère par caractère
[Java] Comment effacer un caractère spécifique d'une chaîne de caractères
Comment convertir A en A et A en A en utilisant le produit logique et la somme en Java
Comment convertir un fichier en tableau d'octets en Java
[Java] Comment rompre une ligne avec StringBuilder
[Java] Comment utiliser Map
Comment désinstaller Java 8 (Mac)
Java pour jouer avec Function
Java - Comment créer JTable
Comment utiliser java Facultatif
Comment réduire les images Java
Comment rédiger un commentaire java
Comment laisser un commentaire
Comment utiliser la classe Java
[Java] Comment utiliser removeAll ()
[Java] Comment afficher les Wingdings
Comment utiliser Java Map
Comment définir des constantes Java
Comment utiliser les variables Java
Comment convertir la base Java
[Java] Comment implémenter le multithreading
Comment initialiser un tableau Java
Comment insérer une vidéo
Comment créer une méthode
[Introduction aux jeux Janken (comme)] Java
Comment créer une image de conteneur légère pour les applications Java
Comment déployer une application Java Servlet simple sur Heroku
Comment stocker des chaînes de ArrayList à String en Java (personnel)
Comment déployer une application kotlin (java) sur AWS Fargate
Comment développer et enregistrer une application Sota en Java
Comment simuler le téléchargement de formulaires post-objet vers OSS en Java
[Netabare] Magasin d'anguilles de table longue (équivalent à la paiza rang B)
Comment lire un fichier MIDI à l'aide de l'API Java Sound
Une histoire de malentendu sur l'utilisation du scanner Java (mémo)
Comment étudier Java Silver SE 8
Comment utiliser HttpClient de Java (Get)
Étudier Java # 6 (Comment écrire des blocs)