-
Rust Lang) 백준 2002 추월Rust 2024. 1. 9. 16:13
// Answer
// https://www.acmicpc.net/problem/2002 use std::{io::{stdin, BufRead}, collections::{HashSet, HashMap}}; fn main() { let mut in_cars: HashMap<String, u32>= HashMap::new(); let mut out_cars: HashMap<String, u32>= HashMap::new(); let std= stdin(); let mut buf= std.lock().lines(); let input= buf.next().unwrap().unwrap(); let n: u32= input.parse().unwrap(); for i in 0..n{ let car_nubmer_str= buf.next().unwrap().unwrap(); in_cars.insert(car_nubmer_str, i); } for i in 0..n{ let car_nubmer_str= buf.next().unwrap().unwrap(); out_cars.insert(car_nubmer_str, i); } let car_size= out_cars.len(); if car_size == 1{ println!("0"); } let keys: Vec<&String>= in_cars.keys().collect(); let mut answer: HashSet<String>= HashSet::new(); let keys2= keys.clone(); for car1 in keys{ for car2 in &keys2{ if out_cars.contains_key(car1) && out_cars.contains_key(*car2){ if in_cars.get(car1) < in_cars.get(*car2) && out_cars.get(car1) > out_cars.get(*car2){ answer.insert(car2.clone().clone()); } } } } println!("{}", answer.len()); }
// My code
// https://www.acmicpc.net/problem/2002 // test case 1,2,3은 통과 // 1: https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=28d4f848b9a54dd25882fce095a0e9a4 // 2: https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=f3f2b0bace0d9a06be639172d25ae630 // 3: https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=06d5aee3653f5375d794edeab7a81acc use std::io::{stdin, BufRead}; fn main() { let mut in_cars: Vec<String>= Vec::new(); let mut out_cars: Vec<String>= Vec::new(); let std= stdin(); let mut buf= std.lock().lines(); let input= buf.next().unwrap().unwrap(); let n: u32= input.parse().unwrap(); for _ in 0..n{ let car_nubmer_str= buf.next().unwrap().unwrap(); in_cars.push(car_nubmer_str); } for _ in 0..n{ let car_nubmer_str= buf.next().unwrap().unwrap(); out_cars.push(car_nubmer_str); } let car_size= out_cars.len(); if car_size == 1{ println!("0"); } let mut cnt= 0; for (i, in_car) in in_cars.iter().enumerate(){ for (j, out_car) in out_cars.iter().enumerate(){ if in_car == out_car && i != j{ if i> j { cnt+=1; } } } } println!("{}", cnt); }
'Rust' 카테고리의 다른 글
Rust lang) 백준 7562번 : 나이트의 이동 (0) 2024.01.16 Rust lang) leetcode 207. Course Schedule (0) 2024.01.11 Rust lang) 백준 15903 카드 합체 놀이 (1) 2024.01.09 rust lang) 백준 1927 최소 힙 (1) 2024.01.09 Rust lang) 백준 5397 키로거 (0) 2024.01.09