Comments (2)
Hi! I'm happy to help, but please do make sure to include all pertinent information. This should include the full code. I added the necessary imports and constant to your code for you this time. :-)
use std::collections::HashSet;
use std::fs;
const FILE_NAME: &'static str = "input.txt";
fn main() {
let content = fs::read_to_string(FILE_NAME)
.expect("Error while reading the input file");
let mut previous = HashSet::new();
let mut count = 0;
previous.insert(count);
for line in content.lines() {
if !line.is_empty() {
let current: i32 = line.parse()
.expect("Error while parsing line");
count += current;
if previous.contains(&count) { // I NEVER PASS THIS CONDITION, WHY? :(
println!("here! {}", count);
break;
}
previous.insert(count);
}
}
println!("{}", count);
}
Once doing that, and after dropping day 1's input into the current directory, running it appears to get part 1 right:
$ cargo run --release
Compiling aoc-issue-3 v0.1.0 (/tmp/aoc-issue-3)
Finished release [optimized] target(s) in 0.46s
Running `target/release/aoc-issue-3`
437
For part 2, I think you might have misunderstood the puzzle. You need to cycle over the input as many times as is necessary to find a repetition. One loop through the input isn't enough. e.g.,
use std::collections::HashSet;
use std::fs;
const FILE_NAME: &'static str = "input.txt";
fn main() {
let content = fs::read_to_string(FILE_NAME)
.expect("Error while reading the input file");
let mut previous = HashSet::new();
let mut count = 0;
previous.insert(count);
loop {
for line in content.lines() {
if !line.is_empty() {
let current: i32 = line.parse()
.expect("Error while parsing line");
count += current;
if previous.contains(&count) { // I NEVER PASS THIS CONDITION, WHY? :(
println!("here! {}", count);
return;
}
previous.insert(count);
}
}
}
}
And here's the output:
$ cargo run --release
Compiling aoc-issue-3 v0.1.0 (/tmp/aoc-issue-3)
Finished release [optimized] target(s) in 0.43s
Running `target/release/aoc-issue-3`
here! 655
Good luck!
from advent-of-code.
Thank you @BurntSushi this is much appreciated 👍
You are right, I'll take care of putting the whole code next time.
And yeah, this is shame that I didn't understand the puzzle right :(
Note that your device might need to repeat its list of frequency changes many times before a duplicate frequency is found, and that duplicates might be found while in the middle of processing the list.
Thanks!
from advent-of-code.
Related Issues (16)
- Thanks! HOT 1
- Day12: Slowlyness from usage of string? HOT 3
- Day 5: Comparing char and char::ToUppercase HOT 3
- Day 5: advancing or 'skipping' an iterator HOT 2
- Why read from stdin ? HOT 3
- Solution for day 20 seems to be wrong HOT 2
- AOC01: Using std::io::Result instead? HOT 3
- writeln!(io::stdout()) vs println HOT 2
- ::std? HOT 1
- Day 2: returning tuples HOT 2
- When to use vec! instead of Vec::new()? HOT 1
- Day 4 / Borrowing in loop HOT 8
- aoc10: 80x80 canvas? HOT 2
- Day 8: HashMap.copy is expensive HOT 4
- Walk through your thought process for day 10 HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from advent-of-code.