advent of code day 3: i might be r-slurred edition

idk how to do multi line spoilers lol



letters = ['','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z', 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']

total_score = 0

team = []

for line in open("input.txt"):
    team.append(line.strip())

for i in range(2, len(team), 3):
    for letter in team[i]:
        if letter in team[i-2] and letter in team[i-1]:
            total_score += letters.index(letter)
            break

print(total_score)

some real caveman shit but it works

80
Jump in the discussion.

No email address required.

here's my... verbose solution (debugging code :marseyscratch: removed)

from string :marseyyarn: import ascii_lowercase, ascii_uppercase
from y2022.scaffold import *

class Day03(Day):
	def __init__(self):
		super()
	
	@property
	def day(self): return :marseymonke: 3

	def prepare_data(self) -> Any:
		return [(take(x, int(len(x) / 2)), skip(x, int(len(x) / 2))) for x in self.get_data().split('\n')]

	def prepare_data2(self) -> Any:
		return self.get_data().split('\n')

	PRIORITIES = {}

	def a(self):
		data = self.prepare_data()
		y = 1
		for x in ascii_lowercase:
			self.PRIORITIES[x] = y
			y += 1
		for x in ascii_uppercase:
			self.PRIORITIES[x] = y
			y += 1
		sum = 0
		for sack in data:
			if len(sack[0]) == 0: continue
			item3 = None
			found = False
			for item in sack[0]:
				for item2 in sack[1]:
					if item == item2:
						item3 = item
						found = True
						break
				if found: break
			sum += self.PRIORITIES[item3]
		print(sum)
	
	def b(self):
		data = self.prepare_data2()
		i = 0
		sack1 = None
		sack2 = None
		sack3 = None
		item = None
		sum = 0
		for i in range(0, len(data) - 3, 3):
			sack1 = data[i]
			sack2 = data[i + 1]
			sack3 = data[i + 2]
			for x in sack1:
				if not x in sack2: continue
				if not x in sack3: continue
				item = x
				break
			sum += self.PRIORITIES[item]
		print(sum)
Jump in the discussion.

No email address required.

I love the marsify inserts lmao

rdrama turing complete when

Jump in the discussion.

No email address required.

function compile(program) {
  let tape       = Array(100).fill(0);
  let ptr        = 0;
  let isLooping  = false;
  let loopStack  = [];
  let innerLoops = 0;

  for( i = 0; i < program.length; i++ ) {

  const char = program[i];

    if(isLooping) {
      if(char === "[") innerLoops++;
        if(char === "]") {
          if(innerLoops === 0) isLooping = false;
          else innerLoops--;
        }
      continue;
    }

    switch(char){
      case ':marseylove:':
        tape[ptr]++;
        break;
      case ':marseyraging:':
        tape[ptr]--;
        break;
      case ':marseycry:':
        tape[ptr] = prompt()[0].charCodeAt()
        break;
      case ':marsey:':
        console.log(String.fromCharCode(tape[ptr]));
        break;
      case ':marseyhmmm:':
        ptr++;
        tape[ptr] = tape[ptr] || 0;
        break;
      case ':marseygigaretard:':
        ptr--;
        tape[ptr] = tape[ptr] || 0;
        break;
      case ':chudsey:':
        tape[ptr] === 0 
          ? isLooping = true
          : loopStack.push(i);
        break;
      case ':marseytrans2:':
        tape[ptr] !== 0
          ? i = loopStack[loopStack.length-1]
          : loopStack.pop();
        break;
      default:
        break;
      }
    }
}
Jump in the discussion.

No email address required.

Hello World:

:marseylove::marseylove::marseylove::marseylove::marseylove::marseylove::marseylove::marseylove::marseylove::marseylove::chudsey::marseyhmmm::marseylove::marseylove::marseylove::marseylove::marseylove::marseylove::marseylove::marseyhmmm::marseylove::marseylove::marseylove::marseylove::marseylove::marseylove::marseylove::marseylove::marseylove::marseylove::marseyhmmm::marseylove::marseylove::marseylove::marseyhmmm::marseylove::marseygigaretard::marseygigaretard::marseygigaretard::marseygigaretard::marseyraging::marseytrans2::marseyhmmm::marseylove::marseylove::marsey::marseyhmmm::marseylove::marsey::marseylove::marseylove::marseylove::marseylove::marseylove::marseylove::marseylove::marsey::marsey::marseylove::marseylove::marseylove::marsey::marseyhmmm::marseylove::marseylove::marsey::marseygigaretard::marseygigaretard::marseylove::marseylove::marseylove::marseylove::marseylove::marseylove::marseylove::marseylove::marseylove::marseylove::marseylove::marseylove::marseylove::marseylove::marseylove::marsey::marseyhmmm::marsey::marseylove::marseylove::marseylove::marsey::marseyraging::marseyraging::marseyraging::marseyraging::marseyraging::marseyraging::marsey::marseyraging::marseyraging::marseyraging::marseyraging::marseyraging::marseyraging::marseyraging::marseyraging::marsey::marseyhmmm::marseylove::marsey::marseyhmmm::marsey:

Jump in the discussion.

No email address required.

Does nobody know what a set is?

Jump in the discussion.

No email address required.

A set is a list that doesn’t have any duplicates in it.

Jump in the discussion.

No email address required.

Link copied to clipboard
Action successful!
Error, please refresh the page and try again.