asyncrosaurus

joined 2 years ago
[–] asyncrosaurus@programming.dev 2 points 2 years ago* (last edited 2 years ago)

[Language: C#]

This isn't the most performant or elegant, it's the first one that worked. I have 3 kids and a full time job. If I get through any of these, it'll be first pass through and first try that gets the correct answer.

Part 1 was very easy, just iterated the string checking if the char was a digit. Ditto for the last, by reversing the string. Part 2 was also not super hard, I settled on re-using the iterative approach, checking each string lookup value first (on a substring of the current char), and if the current char isn't the start of a word, then checking if the char was a digit. Getting the last number required reversing the string and the lookup map.

Part 1:

var list = new List((await File.ReadAllLinesAsync(@".\Day 1\PuzzleInput.txt")));

int total = 0;
foreach (var item in list)
{
    //forward
    string digit1 = string.Empty;
    string digit2 = string.Empty;


    foreach (var c in item)
    {
        if ((int)c >= 48 && (int)c <= 57)
        {
            digit1 += c;
        
            break;
        }
    }
    //reverse
    foreach (var c in item.Reverse())
    {
        if ((int)c >= 48 && (int)c <= 57)
        {
            digit2 += c;

            break;
        }

    }
    total += Int32.Parse(digit1 +digit2);
}

Console.WriteLine(total);

Part 2:

var list = new List((await File.ReadAllLinesAsync(@".\Day 1\PuzzleInput.txt")));
var numbers = new Dictionary() {
    {"one" ,   1}
    ,{"two" ,  2}
    ,{"three" , 3}
    ,{"four" , 4}
    ,{"five" , 5}
    ,{"six" , 6}
    ,{"seven" , 7}
    ,{"eight" , 8}
    , {"nine" , 9 }
};
int total = 0;
string digit1 = string.Empty;
string digit2 = string.Empty;
foreach (var item in list)
{
    //forward
    digit1 = getDigit(item, numbers);
    digit2 = getDigit(new string(item.Reverse().ToArray()), numbers.ToDictionary(k => new string(k.Key.Reverse().ToArray()), k => k.Value));
    total += Int32.Parse(digit1 + digit2);
}

Console.WriteLine(total);

string getDigit(string item,                 Dictionary numbers)
{
    int index = 0;
    int digit = 0;
    foreach (var c in item)
    {
        var sub = item.AsSpan(index++);
        foreach(var n in numbers)
        {
            if (sub.StartsWith(n.Key))
            {
                digit = n.Value;
                goto end;
            }
        }

        if ((int)c >= 48 && (int)c <= 57)
        {
            digit = ((int)c) - 48;
            break;
        }
    }
    end:
    return digit.ToString();
}
[–] asyncrosaurus@programming.dev 7 points 2 years ago (1 children)

unpaid work

This is like whining that a journalist doing a crossword puzzle is "unpaid work" because they use words at their day job.

None of these puzzles are remotely like actual work. It's for fun. Can't you just have fun for a couple hours?

[–] asyncrosaurus@programming.dev 16 points 2 years ago (1 children)

CIA is an initialism, not an acronym, since you pronounce each letter individually.

What you sir are suggesting is a complete erasure of initialisms, and I will not stand for it.

You can write it in whatever language you want, as long as it's rust.

/s

[–] asyncrosaurus@programming.dev 7 points 2 years ago (1 children)

That's really only because the U.S. government is set up all stupid to give the religious nut jobs over-representation. The House is capped at 435. It should be way bigger so bigger states with bigger populations had significanrly more represtatives than the tiny ones.

[–] asyncrosaurus@programming.dev 2 points 2 years ago (1 children)

Sounds like a real pain in the ass.

[–] asyncrosaurus@programming.dev 6 points 2 years ago (4 children)

I just assumed everyone here suffered from Acute Gastrointestinal Illness

Depends:

For websites: Htmx + AlpineJs on the front end, ASP.NET Razor Pages and PostegreSQL on the backend.

For Web Apps; Blazor and PostgreSQL

. 10,000 years ago is about when we developed agriculture, stopped roaming as much, and started writing in some form that could survive the millennia

This is bias towards a specific type of societal structure.

Lots of peoples with rich, complex and fascinating cultures continued to live successful nomadic lives for centuries past the introduction of agriculture.

[–] asyncrosaurus@programming.dev 8 points 2 years ago* (last edited 2 years ago) (1 children)

In a 4-D chess move, by canceling everything with no resolution, they've made their shows not worth pirating by making them not worth watching.

[–] asyncrosaurus@programming.dev 10 points 2 years ago* (last edited 2 years ago)

I thought it was a balance between new shows getting better engagement than old shows, and contracts lasting 3 seasons, which required re-negotiations in favor of the talent. Basically a business model hyper-focused on subscriber growth metrics instead of subscriber retention.

view more: β€Ή prev next β€Ί