[Java] Wie man aus Janken rauskommt (entspricht Paiza Rang A)

Was ist Paiza?

offizielle Website von Paiza Ein Ort, an dem Sie ein Programm schreiben, es bewerten und bewerten Sie können Ihre Programmierkenntnisse an das Unternehmen richten, das Sie suchen (Ich denke nicht, dass es praktisch ist, aber wenn Sie es richtig lösen, können Sie sehen, dass es die minimale Fähigkeit hat.)

Das Problem ist diesmal zu lösen

Problem: Wie man aus Janken rauskommt ・ Gesamtzahl der Spiele N. ・ Gesamtindex M. ・ Handreihe des Gegners S. 3 werden als Eingaben angegeben, und das Problem der Bestimmung der maximalen Anzahl von Gewinnen gegen die Hand des Gegners, wenn die Gesamtzahl der Spiele und der Gesamtindex genau verwendet werden Weitere Informationen finden Sie unter

Antwortcode und Ergebnis

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

/**
 *Wie man die Hände von Janken ausstreckt(äquivalent zu Paiza Rang A.)
 */
public class AS001{

	public static void main(String[] args) {

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


		//Analyse der gegnerischen Hand
		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


		//Handmusteraufzählung
		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; //Index
				int remain = n - i - j; //Anzahl der verbleibenden Spiele

				if(yubi == m && remain >= 0) {
					//Kombination, die Finger innerhalb der Gesamtzahl der Spiele verbraucht
					Integer[] pattern = {remain, i, j}; //{g, c, p}
					patternList.add(pattern);
				}else if(yubi > m || remain < 0) {
					//Wenn die Anzahl der Spiele aufgebraucht ist oder der Index überschritten wird, wird die nächste Schleife ausgeführt
					break;
				}//if
			}//for
		}//for


		//Berechnen Sie das Muster der maximalen Gewinne
		int maxWin = 0;
		for(Integer[] pattern : patternList) {
			int win = 0;
			win += Math.min(handCount[0], pattern[2]); //Die andere Partei ist goo, ich bin par
			win += Math.min(handCount[2], pattern[1]); //Die andere Partei ist par, ich bin Choki
			win += Math.min(handCount[1], pattern[0]); //Die andere Partei ist Choki, ich bin goo
			if(win > maxWin) maxWin = win;
		}//for


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

Ergebnis

Die gesamte Ausführungszeit beträgt 0,10 Sekunden

Wie man Janken löscht_Ergebnis.png

Recommended Posts

[Java] Wie man aus Janken rauskommt (entspricht Paiza Rang A)
So erstellen Sie einen Java-Container
Wie man Paiza Rang D erreicht
So erstellen Sie ein Java-Array
So erstellen Sie eine Java-Kalenderzusammenfassung
[Einführung in Java] So schreiben Sie ein Java-Programm
Wie erstelle ich einen Discord Bot (Java)
So zeigen Sie eine Webseite in Java an
So konvertieren Sie einen Soliditätsvertrag in eine Java-Vertragsklasse
Wie man Paiza Rang C erreicht (Zeitmethode)
So springen Sie von Eclipse Java zu einer SQL-Datei
java: Wie schreibe ich eine generische Typliste? [Hinweis]
So erstellen Sie einen Daten-URI (base64) in Java
[Java] So erhalten Sie eine Anfrage per HTTP-Kommunikation
[Java] Wie man Aufgaben regelmäßig ausführt
[Java] So schneiden Sie eine Zeichenfolge zeichenweise aus
[Java] So löschen Sie ein bestimmtes Zeichen aus einer Zeichenfolge
So konvertieren Sie A in a und a in A mit logischem Produkt und Summe in Java
So konvertieren Sie eine Datei in ein Byte-Array in Java
[Java] So unterbrechen Sie eine Zeile mit StringBuilder
[Java] Verwendung von Map
So deinstallieren Sie Java 8 (Mac)
Java zum Spielen mit Function
Java - So erstellen Sie JTable
Verwendung von Java Optional
So minimieren Sie Java-Images
Wie schreibe ich einen Java-Kommentar
Wie hinterlasse ich einen Kommentar?
Verwendung der Java-Klasse
[Java] Verwendung von removeAll ()
[Java] So zeigen Sie Wingdings an
Verwendung von Java Map
So legen Sie Java-Konstanten fest
Verwendung von Java-Variablen
So konvertieren Sie Java Base
[Java] So implementieren Sie Multithreading
So initialisieren Sie ein Java-Array
So fügen Sie ein Video ein
So erstellen Sie eine Methode
[Einführung in Janken (ähnliche) Spiele] Java
So erstellen Sie ein leichtes Container-Image für Java-Apps
So stellen Sie eine einfache Java-Servlet-App auf Heroku bereit
Speichern von Zeichenfolgen von ArrayList zu Zeichenfolge in Java (Personal)
So stellen Sie eine Kotlin (Java) -App auf AWS fargate bereit
So entwickeln und registrieren Sie eine Sota-App in Java
So simulieren Sie das Hochladen von Post-Object-Formularen in OSS in Java
[Netabare] Aalladen mit langem Tisch (entspricht Paiza Rang B)
So spielen Sie eine MIDI-Datei mit der Java Sound API ab
Eine Geschichte über Missverständnisse im Umgang mit Java-Scannern (Memo)
So lernen Sie Java Silver SE 8
Verwendung von HttpClient (Get) von Java
Java # 6 studieren (Wie man Blöcke schreibt)