Guide for Nou Barris, o en son 13?


Això és una guia per ajudar-te a començar amb aquest problema — no és la solució.
Mostra el codi per a: Consideracions generals Java 11 Python 3

Com abordar aquest problema

Se't donen noms de barris de Barcelona, un per línia, i has de dir si cadascun formava part del districte de Nou Barris quan es va crear l'any 1984 (SI) o no (NO).

Idea general:

  1. Llegeix bé l'enunciat i identifica quins són els barris que hi havia el 1984 (compte, l'enunciat mateix t'explica quins barris es van afegir més tard, el 2006, i quins es van dividir).
  2. Guarda aquests noms en una estructura de dades on sigui ràpid comprovar si un valor hi és (una llista, un conjunt...).
  3. No saps per endavant quants casos et donaran: llegeix línies fins que s'acabi l'entrada.
  4. Per cada línia, mira si el nom hi és a la teva estructura i escriu SI o NO.

Paranys habituals:

  • Els noms han de coincidir exactament amb els de l'enunciat (majúscules, accents...). Vigila si llegeixes la línia amb espais o salts de línia de més — normalment cal netejar-la abans de comparar.
  • No et refiïs de memòria dels barris: torna a llegir l'enunciat amb calma, hi ha la informació que et cal.

Pista per a Java

En Java pots fer servir un Scanner per llegir línia a línia fins que no n'hi hagi més (hasNextLine()), i un HashSet<String> per consultar els noms ràpidament:

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Set<String> barris1984 = new HashSet<>(Arrays.asList(
            // ompliu aquí els noms dels barris, tal com apareixen a l'enunciat
        ));

        Scanner sc = new Scanner(System.in);
        while (sc.hasNextLine()) {
            String barri = sc.nextLine().trim();
            System.out.println(barris1984.contains(barri) ? "SI" : "NO");
        }
    }
}

El .trim() treu espais de sobra al principi i al final de la línia abans de comparar-la.


Tornar al problema