red hace 4 años
padre
commit
44fe6e971e
Se han modificado 11 ficheros con 54 adiciones y 7 borrados
  1. +8
    -7
      CMakeLists.txt
  2. +0
    -0
      d1-10/day1.c
  3. +0
    -0
      d1-10/day3.c
  4. +0
    -0
      d1-10/day4.c
  5. +0
    -0
      d1-10/day6.c
  6. +46
    -0
      d1-10/day8.c
  7. +0
    -0
      intcode/day2.c
  8. +0
    -0
      intcode/day5.c
  9. +0
    -0
      intcode/day7.c
  10. +0
    -0
      intcode/intcode.c
  11. +0
    -0
      intcode/intcode.h

+ 8
- 7
CMakeLists.txt Ver fichero

@@ -3,10 +3,11 @@ project(aoc2019 C)

set(CMAKE_C_STANDARD 99)

add_executable(day1 day1.c)
add_executable(day2 day2.c)
add_executable(day3 day3.c)
add_executable(day4 day4.c)
add_executable(day5 day5.c intcode.c)
add_executable(day6 day6.c)
add_executable(day7 day7.c intcode.c)
add_executable(day1 d1-10/day1.c)
add_executable(day2 intcode/day2.c)
add_executable(day3 d1-10/day3.c)
add_executable(day4 d1-10/day4.c)
add_executable(day5 intcode/day5.c intcode/intcode.c)
add_executable(day6 d1-10/day6.c)
add_executable(day7 intcode/day7.c intcode/intcode.c)
add_executable(day8 d1-10/day8.c)

day1.c → d1-10/day1.c Ver fichero


day3.c → d1-10/day3.c Ver fichero


day4.c → d1-10/day4.c Ver fichero


day6.c → d1-10/day6.c Ver fichero


+ 46
- 0
d1-10/day8.c Ver fichero

@@ -0,0 +1,46 @@
//
// Created by red on 08/12/19.
//

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argv, char** argc) {
char* filename = argc[1];
FILE* f = fopen(filename, "r");
char buffer[15001];
char final[150];
memset((void*) final, '2', 150*sizeof(char));
fscanf(f, "%s", buffer);
int min_0s = 150;
int no_1s = 0;
int no_2s = 0;
for (size_t layer = 0; layer < 100; layer++) {
int num_0s = 0;
int num_1s = 0;
int num_2s = 0;
for (size_t i = 0; i < 150; i++) {
char c = buffer[layer*150 + i];
switch (c) {
case '0': num_0s++; break;
case '1': num_1s++; break;
case '2': num_2s++; break;
default: break;
}
if (final[i] == '2' && c != '2') final[i] = c;
}
if (num_0s < min_0s) {
min_0s = num_0s;
no_1s = num_1s;
no_2s = num_2s;
}
}
printf("Smallest no. of 0s found: %d, checksum: %d\n", min_0s, no_1s*no_2s);
for (size_t i = 0; i < 150; i++) {
printf("%c", final[i]);
if (i % 25 == 24) {
puts("");
}
}
}

day2.c → intcode/day2.c Ver fichero


day5.c → intcode/day5.c Ver fichero


day7.c → intcode/day7.c Ver fichero


intcode.c → intcode/intcode.c Ver fichero


intcode.h → intcode/intcode.h Ver fichero


Cargando…
Cancelar
Guardar