Lösen mit Ruby, Perl, Java und Python AtCoder ABC 131 D Sortieren von Arrays

Einführung

Dieses Thema

AtCoder Beginner Contest 131 D - Megalomania Difficulty: 594

Dieses Thema, Sortieren von Arrays Ruby Es ist eine Array-Sortierung, daher denke ich, dass es einfach zu implementieren ist. ~~ Da dies mein erster Python ist, habe ich eine leichtere Frage gewählt. ~~

ruby.rb


n = gets.to_i
a = Array.new(n){gets.split.map(&:to_i)}
a.sort_by!{|x| x[1]}
ans = 0
n.times do |i|
  ans += a[i][0]
  if ans > a[i][1]
    puts "No"
    exit
  end
end
puts "Yes"

sort.rb


a.sort_by!{|x| x[1]}

~~ Sortieren nach mehreren Bedingungen, aber zu Lernzwecken kann nur eine als Lösung sortiert werden. ~~ ** Ergänzung ** Aus den eingegangenen Kommentaren wurden einige Korrekturen vorgenommen. Python Es ist fast eine Kopie, weil es zum ersten Mal mit *** Python *** gelöst wurde.

python.py


n = int(input())
a = list(list(map(int, input().split())) for _ in range(n))
a.sort(key=lambda x: x[1])
ans = 0
for i in range(0, n):
    ans += a[i][0]
    if ans > a[i][1]:
        print("No")
        exit()
print("Yes")

Die Codierung ist einfach, da die VSCode-Erweiterung funktioniert.

range.py


for i in range(0, n):
for i in range(0, n - 1):

Ich habe versucht, es mit i at for zu drehen, aber ich habe n -1 geschrieben und WA bekommen.

Nächstes Mal werde ich versuchen, nach mehreren Bedingungen zu sortieren. Perl

perl.pl


chomp (my $n = <STDIN>);
my @a;
for my $i (0..$n-1) {
  my @in = split / /, <STDIN>;
  ($a[$i][0], $a[$i][1]) = @in;
}
@a = sort {$$a[1]<=>$$b[1] || $$b[0]<=>$$a[0]} @a;

my $ans = 0;
for my $i (0..$n-1) {
  $ans += $a[$i][0];
  if ($ans>$a[$i][1]) {
    print "No\n";
    exit;
  }
}
print "Yes\n";

sort.pl


@a = sort {$$a[1]<=>$$b[1] || $$b[0]<=>$$a[0]} @a;

java.java


import java.util.*;

class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = Integer.parseInt(sc.next());
        List<Work> work = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            int time = Integer.parseInt(sc.next());
            int limit = Integer.parseInt(sc.next());
            work.add(new Work(time, limit));
        }
        sc.close();
        work.sort(Comparator.comparingInt(x -> x.limit));
        int ans = 0;
        for (int i = 0; i < n; i++) {
            ans += work.get(i).time;
            if (ans > work.get(i).limit) {
                System.out.println("No");
                return;
            }
        }
        System.out.println("Yes");
    }

    static class Work {
        int time;
        int limit;

        Work(int time, int limit) {
            this.time = time;
            this.limit = limit;
        }
    }
}

sort.java


        work.sort(Comparator.comparingInt(x -> x.limit));

** Ergänzung ** Wie mir in den Kommentaren gesagt wurde, habe ich den Vergleichsteil der Sortierung in den Code geändert, der den in Java8 eingeführten Comparator verwendet. Sicherer und etwas schneller.

Ruby Python Perl Java
Codelänge 189 Byte 231 Byte 315 Byte 972 Byte
Ausführungszeit 484 ms 995 ms 1237 ms 883 ms
Erinnerung 22520 KB 53728 KB 66788 KB 72900 KB

Zusammenfassung

Recommended Posts

Lösen mit Ruby, Perl, Java und Python AtCoder ABC 131 D Sortieren von Arrays
AtCoder ABC 165 D Bodenfunktion in Ruby, Perl, Java und Python gelöst
Lösen mit Ruby, Perl, Java und Python AtCoder ABC 065 C-te Potenz
Lösen mit Ruby und Python AtCoder ABC151 D Suche nach Breitenpriorität
Lösen mit Ruby, Perl, Java und Python AtCoder ATC 002 A.
Lösen mit Ruby, Perl, Java und Python AtCoder ATC 002 B.
Lösen mit Ruby und Python AtCoder ABC138 D Benachbarte Liste
Lösen in Ruby, Python und Java AtCoder ABC141 D Priority Queue
Lösen mit Ruby, Python und networkx AtCoder ABC168 D Benachbarte Liste
Lösen mit Ruby, Perl, Java und Python AtCoder AGC 033 Eine Suche mit Breitenpriorität
Lösen mit Ruby, Perl, Java und Python AtCoder ARC 098 C Kumulative Summe
Lösen mit Ruby, Perl, Java und Python AtCoder CADDi 2018 C Primfaktorisierung
Lösen mit Ruby, Perl, Java und Python AtCoder ABC 047 C Regulärer Ausdruck
Lösen mit Ruby und Python AtCoder ABC133 D Kumulative Summe
Lösen mit Ruby und Python AtCoder AISING2020 D Iterative Square-Methode
Lösen mit Ruby und Python AtCoder ABC011 C Dynamische Planungsmethode
Lösen mit Ruby und Python AtCoder ABC153 E Dynamische Planungsmethode
Lösen mit Ruby, Perl, Java und Python AtCoder diverta 2019 Programmierwettbewerb C String Manipulation
Lösen mit Ruby, Python und numpy AtCoder ABC054 B Matrixberechnung
Lösen mit Ruby und Python AtCoder ABC057 C Zerlegung des Primfaktors Bit vollständige Suche
Lösen mit Ruby, Perl, Java und Python AtCoder ARC 066 C Iterativer Square Hash
Lösen mit Ruby und Python AtCoder ARC 059 C Minimum-Quadrat-Methode
Lösen mit Ruby und Python AtCoder ARC067 C Primfaktorisierung
Löse AtCoder ABC168 mit Python (A ~ D)
AtCoder ARC104 B Kumulative Summe in Ruby, Python und Java gelöst
Lösen mit Ruby und Python AtCoder Tenka1 Programmer Contest C Kumulative Summe
AtCoder ABC110 C-String-Manipulation zum Lösen in Ruby
Lösen mit Ruby und Python AtCoder CODE FESTIVAL 2016 qual C B Priority Queue
AtCoder ABC 182 Python (A ~ D)
AtCoder ABC168 Ein in Ruby und Python gelöster Fallausdruck
Löse ABC166 A ~ D mit Python
Ruby Python Java Sortierung ohne Berücksichtigung der Groß- und Kleinschreibung
AtCoder ABC 114 C-755 mit Python3 gelöst
Listen Sie Split- und Join-Zeichenfolgen mit Split und Join auf (Perl / PowerShell / Java / Kotlin / Python).
Python> Link> Initialisierung und Zuweisung von 2D-Arrays
[AtCoder] Löse ABC1 ~ 100 Ein Problem mit Python
Mit Ruby (Rails) verschlüsseln und mit Python entschlüsseln
Einfaches Web-Scraping mit Python und Ruby
Lösen mit Ruby und Python AtCoder ABC172 C Kumulative Summen-Dichotomie
[AtCoder] Lösen Sie ein Problem von ABC101 ~ 169 mit Python
MessagePack-Versuchen Sie, Java und Python mit RPC zu verbinden
Zusammenfassung der Korrespondenz zwischen Ruby- und Python-Array-Operationen
AtCoder ABC 174 Python
[Erklärung zum AtCoder] Kontrollieren Sie die A-, B-, (C), D-Probleme von ABC165 mit Python!
[AtCoder-Erklärung] Kontrollieren Sie die A-, B-, C- und D-Probleme von ABC183 mit Python!
Lösen des Lorenz 96-Modells mit Julia und Python
Fordern Sie AtCoder (ABC) 164 mit Python heraus! A ~ C Problem
[Erklärung zum AtCoder] Kontrollieren Sie die A-, B-, C- und D-Probleme von ABC181 mit Python!
AtCoder ABC 175 Python
Trends für das Webanwendungs-Framework 2014 (PHP / Java / Ruby / Python / Perl)
C-Sprache, Java, Python-Benchmarks mit Primfaktorisierung
Probieren Sie die DB-Operation mit Python aus und visualisieren Sie sie mit d3
Untersuchen Sie den Java- und Python-Datenaustausch mit Apache Arrow
Vergleich von CoffeeScript mit JavaScript-, Python- und Ruby-Grammatik
Versionsverwaltung von Node, Ruby und Python mit anyenv
Ruby, Python und Map
Python und Ruby teilen sich