코드의 출현 - 6일차

올해 Advent of code에 참여하고 있습니까?

코드의 출현이 무엇인지 모른다면 매일의 도전을 발견하게 될 웹사이트입니다(매일 더 어려워집니다). 정말 재미있는 이벤트이니 꼭 참여해보세요!

저는 JavaScript 또는 TypeScript를 사용하여 연습 문제를 해결하려고 노력하고 매일 내 솔루션을 공유할 것입니다(아무도 속일 수 없도록 하루 지연됩니다!). 두 번째 부분에 대한 솔루션만 공유합니다.

6일차에는 의욕이 넘쳤습니다. 저는 챌린지 릴리스(내 시간대로 오전 6시)까지 깨어 있지 않았기 때문에 순위를 매길 수 있을지도 모릅니다!

7분 후, 나는 파트 1을 제출했습니다(아주 좋은 점수 IMO!)... 상위 100위의 대부분이 1분도 채 걸리지 않았다는 것을 깨달았습니다! 그들이 이것을 어떻게 하는지는 모르겠지만, 나는 여전히 내 연기에 만족한다.

어쨌든, 6일차에 대한 나의 해결책은 다음과 같다.

input
  .split(/\r?\n\r?\n/)
  .map((group) => group.split("\n"))
  .map((group) => group.filter(Boolean).map((answers) => answers.split("")))
  .map((group) => {
    const record: Record<string, number> = {};
    group.map((answers) => {
      answers.map((answer) => {
        record[answer] = record[answer] + 1 || 1;
      });
    });
    return Object.keys(record).filter((x) => record[x] === group.length)
      .length;
  })
  .reduce((acc, v) => acc + v, 0);


댓글에 자유롭게 공유해주세요!


Markus SpiskeUnsplash의 사진

좋은 웹페이지 즐겨찾기