[PYTHON] [AOJ] Absteigende Sortierung in verschiedenen Sprachen

Ich habe eine Website zur Einreichung und Bewertung von Programmierproblemen gefunden, die von der Aizu University bereitgestellt wurde und [AIZU ONLINE JUDGE] heißt (http://judge.u-aizu.ac.jp/onlinejudge/index.jsp). Es hat Spaß gemacht, daher habe ich Probleme in verschiedenen Sprachen. Ich habe beschlossen, es zu lösen.

Wählen Sie 5 Sprachen aus: C ++, Python, PHP, SQLite3, Common Lisp. Die Sprache, die ich normalerweise benutze, ist C ++, und ich habe bei der Online-Suche andere Sprachen geschrieben.

Dieses Mal ist das Problem 0001 Liste der Top 3 Hügel.

Problem

List of Top 3 Hills

Es gibt 10 Daten, die die Höhe des Berges als Ganzzahl in Metern darstellen. Erstellen Sie ein Programm, das die 10 Daten liest, 3 von den höchsten ausgibt und fertig ist.

Input

Gebirgshöhe 1 (Ganzzahl) Gebirgshöhe 2 (Ganzzahl) . . Gebirgshöhe 10 (Ganzzahl)

Constraints

0 ≤ Gebirgshöhe ≤ 10000

Output

Höchste Berghöhe Die Höhe des zweithöchsten Berges Die dritthöchste Berghöhe

Sample Input

1819 2003 876 2840 1723 1673 3776 2848 1592 922

Output for the Sample Input

3776 2848 2840

Schreiben Sie vorerst etwas, das die richtige Antwort auf die Beispieleingabe zurückgibt. Die Sortierung ist standardmäßig in allen Sprachen enthalten, sodass ich den Algorithmus nicht selbst schreiben musste.

Antworten

C++


#include <iostream>
#include <set>
using namespace std;
 
int main() {
 
  typedef std::multiset<int> MySet;
  MySet heightSet;
 
  for(int i = 0; i < 10; ++i)
  {
    int val;
    cin >> val;
    //Automatisch sortiert, wenn Sie ein Element in set einfügen
    heightSet.insert(val);
  }
 
  //Umkehren zum Zugriff in absteigender Reihenfolge_Verwenden Sie den Iterator
  MySet::reverse_iterator rit = heightSet.rbegin();
  for(int i = 0; i < 3; ++i)
  {
    cout << *rit << endl;
    ++rit;
  }
  return 0;
}

Wenn Sie den Multiset-Container von STL verwenden, wird dieser beim Einfügen eines Elements automatisch sortiert, sodass Sie ihn ein wenig überspringen können.

python


#Erstellen Sie ein Array
n = list()

for var in range(0, 10):
  #Lesen Sie eine Zeile von der Standardeingabe
  #Cast to int
  n.append( int(raw_input()) )
  
#Sortieren Sie das Array in absteigender Reihenfolge
n.sort(reverse = True)
  
for var in range(0, 3):
  print n[var]

Ich war beeindruckt, dass ich es mit Python kurz schreiben konnte.

PHP


<?php
$hi = fopen('php://stdin', "r");
$ho = fopen('php://stdout', "w");

#Erstellen Sie ein leeres Array
$arr = array();

#Stellen Sie die Daten von der Standardeingabe ein
for($i = 0; $i < 10; $i++)
{
	fscanf($hi, "%d", $arr[]);
}

#Absteigende Sorte
rsort($arr);

#Ausgabe
for($i = 0; $i < 3; $i++)
{
	fwrite($ho, sprintf("%d\n", $arr[$i]));
}

fclose($ho);
fclose($hi);

Es fühlt sich wie eine c-Sprache an, außer dass der Variablen $ hinzugefügt wird.

sqlite3


--Eine Tabelle erstellen
create table tbl(height integer);

--Lesen Sie Daten aus einer Textdatei
.import data.txt tbl

-- 'tbl'Von'height'Sortieren Sie in absteigender Reihenfolge nach Feld und lesen Sie 3 Zeilen
select * from tbl order by height desc limit 3;

Ich wusste nicht, wie ich Informationen aus Standardeingaben in sqlite3 in einen Datensatz einfügen soll, also lese ich aus einer Datei.

Common Lisp


;;N-mal von der Standardeingabe empfangen und zur Liste hinzufügen
(defun input (lst n)
	(cond
		((eq (length lst) n)
			lst
		)
		(t
			(input (append lst (list (read)) ) n )
		)
	)
)

;;Erstellen Sie ein Teilarray der ersten n Elemente der Liste
(defun gettop (lst n)
	(if (or (= n 0) (null lst))
		nil
		(cons (car lst)
			(gettop (cdr lst) (- n 1))
		)
	)
)

(mapcar #'(lambda (x) (format t "~A~%" x))	;Ausgabelistenelemente durch Zeilenumbrüche getrennt
	(gettop
		(sort (input () 10) #'>)	;Erstellen Sie eine Liste aus Standardeingaben und sortieren Sie sie in absteigender Reihenfolge
		3							;Erstellen Sie die ersten drei Listen
	)
)

CommonLisp war zu fremd für mich, um mich an den Prozedurtyp zu gewöhnen, und es dauerte viel Zeit.

Recommended Posts

[AOJ] Absteigende Sortierung in verschiedenen Sprachen
HMAC in verschiedenen Sprachen
Absteigende Sorte mit Mongodb in Python
AOJ Sort I-
Schreiben Sie Klassen (oder klassenähnliche) in verschiedenen Programmiersprachen
Numerische Darstellung von Tagen in verschiedenen Sprachen
Blasensortierung in Python
Benutzerdefinierte Sortierung in Python3
Darstellung von Fibonacci-Sequenzen mit Lambda-Ausdrücken in verschiedenen Sprachen
Messen Sie sich mit Datei-E / A in verschiedenen Sprachen und vergleichen Sie die Geschwindigkeiten
Hallo Welt in verschiedenen Sprachen [Python / PHP / Java / Perl / Ruby]
Ich habe N-Queen in verschiedenen Sprachen implementiert und die Geschwindigkeit gemessen
10 beliebtesten Programmiersprachen im Jahr 2020
Sortieren Sie den Pfad natürlich in Python
Fügen Sie eine Art von AOJ-Übungen ein
Sortieren nach Datum in Python
Ich habe ein Ausgabeprogramm für Primzahlentabellen in verschiedenen Sprachen erstellt