uz
Feedback
ToCode

ToCode

Kanalga Telegramโ€™da oโ€˜tish

ื˜ื™ืคื™ื ืงืฆืจื™ื ืœืžืชื›ื ืชื™ื ืžืืช ื™ื ื•ืŸ ืคืจืง

Ko'proq ko'rsatish
1 419
Obunachilar
-124 soatlar
Ma'lumot yo'q7 kunlar
-430 kunlar
Postlar arxiv
ToCode
1 419
ืขื•ื“ ืžืื•ืชื• ื“ื‘ืจ ืงืœื•ื“ ืงื•ื“ ื™ื•ื“ืข ืœืคืชื•ืจ ืืช ื›ืœ Advent Of Code ืฉืœ ื”ืฉื ื” ื‘ืฉืขืชื™ื™ื. ื–ื” ื‘ื˜ื•ื— ื™ื•ืชืจ ืžื”ืจ ืžืžื ื™ ื•ื›ื ืจืื” ื™ื•ืชืจ ืžื”ืจ ืžืจื•ื‘ ื‘ื ื™ ื”ืื“ื ืฉื ื™ืกื•. ื•ื›ื›ืœ ืฉื”ื›ืœื™ื ื”ืืœื” ืžืฉืชืคืจื™ื ืื ื—ื ื• ืžื‘ื™ื ื™ื ื˜ื•ื‘ ื™ื•ืชืจ ืืช ื”ืขื‘ื•ื“ื” ืฉืœื ื• ื›ืžื”ื ื“ืกื™ ืชื•ื›ื ื”: 1. ืคืชืจื•ืŸ ื‘ืขื™ื•ืช ืžื•ืจื›ื‘ื•ืช, ื›ืืœื” ืฉืœื ืžื•ืคื™ืขื•ืช ื‘ืกืคืจ ื”ืœื™ืžื•ื“, ื•ื“ื•ืจืฉื•ืช ืื™ื ื˜ื’ืจืฆื™ื” ืฉืœ ื—ื•ืžืจ ื•ื”ืชืืžื” ืื™ืฉื™ืช ืฉืœ ืจืขื™ื•ื ื•ืช ื›ืœืœื™ื™ื ืœืขื•ืœื ืชื•ื›ืŸ ืกืคืฆื™ืคื™. 2. ืชื•ืฉื™ื” - ืœืžืฆื•ื ื“ืจื›ื™ื ื‘ื˜ื•ื—ื•ืช ื•ื˜ื•ื‘ื•ืช ืœืขืฉื•ืช ื“ื‘ืจื™ื ื’ื ื›ืฉื”ืจืขื™ื•ืŸ ื”ืจืืฉื•ืŸ ืœื ืขื•ื‘ื“. 3. ืขื‘ื•ื“ืช ืฆื•ื•ืช. 4. ืชืงืฉื•ืจืช ื˜ื•ื‘ื” ืขื ืขืžื™ืชื™ื ื•ืžื ื”ืœื™ื. 5. ืืžื™ื ื•ืช. 6. ืžื‘ื ื” ืคืจื•ื™ืงื˜ ืฉืžืืคืฉืจ ืœืื•ื˜ื•ืžืฆื™ื” ืœื”ืชืงื“ื ื™ื•ืชืจ ืžื”ืจ ืขื ื”ืงื•ื“ - ื–ื” ื›ื•ืœืœ ื’ื ืืช ื”ืงื•ื“ ืขืฆืžื• ื•ื’ื ื”ืงืžืช ืกื‘ื™ื‘ืช ื‘ื“ื™ืงื•ืช, ืžืกืžื›ื™ื ืžืœื•ื•ื™ื, ื™ื›ื•ืœืช ืœื”ืจื™ื ืคืจื•ื™ืงื˜ ื‘ืœื—ื™ืฆื” ืื—ืช ื‘ืกื‘ื™ื‘ื” ื ื™ื™ื˜ืจืœื™ืช, ื ืชื•ื ื™ seed. 7. ื”ื‘ื ืช ื”ืžืกื’ืจืช, ื”ืžื’ื‘ืœื•ืช, ื”ื™ื›ื•ืœื•ืช, ื”ืืจื’ื•ืŸ. ื‘ืจืื™ื™ื” ืงื“ื™ืžื” ื”ืคื™ืฆ'ืจื™ื ื”ื™ื—ื™ื“ื™ื ืฉืžืคืชื—ื™ื ืฆืจื™ื›ื™ื ืœื‘ื ื•ืช ื”ื ืคื™ืชื•ื—ื™ ืชืฉืชื™ืช. ื›ืœ ืžื” ืฉื”ื•ื "ืขื•ื“ ืžืื•ืชื• ื“ื‘ืจ" ื ื™ืชืŸ ืœ AI, ืขื“ื™ืฃ ืœืื ืฉื™ ืคืจื•ื“ืงืืงื˜ ื˜ื›ื ื™ื™ื ื•ืžื•ื›ืฉืจื™ื ืฉื™ืฉืžื—ื• ืœืฉื—ืง ืขื ื”ื›ืœื™ื ื”ื—ื“ืฉื™ื. ืฉืชื™ ื”ืฉืืœื•ืช ื”ื—ืฉื•ื‘ื•ืช ืฉืื ื—ื ื• ื—ื™ื™ื‘ื™ื ืœืฉืื•ืœ ื”ื™ื•ื ืขืœ ื›ืœ ืคื™ืฆ'ืจ ืฉืื ื—ื ื• ื‘ื•ื ื™ื: 1. ื”ืื AI ื™ื›ื•ืœ ืœื‘ื ื•ืช ืืช ื–ื”? 2. ืื ืœื, ืื™ืš ืฆืจื™ื›ื” ืœื”ื™ืจืื•ืช ื”ืžืขืจื›ืช ื›ื“ื™ ืฉ AI ื™ื•ื›ืœ ืœื‘ื ื•ืช ืืช ื–ื”?

ToCode
1 419
ืื– ื” AI ื˜ืขื” ื‘ืฉื ืฉืœ ื”ืคื•ื ืงืฆื™ื” ืื™ืš ืžื‘ืœื‘ืœื™ื ืืช ืงืœื•ื“? ืžืกืชื‘ืจ ืฉื‘ืงืœื•ืช ื•ืืคื™ืœื• ื‘ืœื™ ืœื”ืชื›ื•ื•ืŸ. ื–ื” ื”ืงื•ื“ ืฉื”ื™ื” ืฆืจื™ืš ืœื›ืชื•ื‘:
token_translations.each do |tt|
  word = tt.original_text
  translation = tt.translation
ืจื•ืื™ื ืืช ื”ื‘ืขื™ื”? ืืคื™ืœื• ืœืคื ื™ ืฉืงืœื•ื“ ืžืชื—ื™ืœ ืœืžืžืฉ ืื ื—ื ื• ืžื‘ื™ื ื™ื ืฉืžืฉื”ื• ืœื ืžืกืชื“ืจ, ื”ืื ืฆืจื™ืš ืืช ื”ืกื™ื•ืžืช _text ืื• ืœื? ื•ืื›ืŸ ื›ืฉื‘ื™ืงืฉืชื™ ืžืงืœื•ื“ ืœืžืžืฉ ืืช ื”ืœื•ืœืื” ื‘ืžืงื•ื ืื—ืจ ื”ื•ื ื›ืชื‘:
token_translations.each do |tt|
  word = tt.original_text
  translation = tt.translation_text
ื•ืื ื™ ืืคื™ืœื• ืœื ื™ื›ื•ืœ ืœื”ืืฉื™ื ืื•ืชื•. ื–ื” ื ืจืื” ื›ืœ ื›ืš ื™ื•ืชืจ ื ื›ื•ืŸ ื›ื›ื”. ืงื•ื“ ืฆืคื•ื™ ื”ื•ื ืงื•ื“ ืงืจื™ื ื™ื•ืชืจ ื•ืœื”ื™ืคืš. ื›ืฉ AI ื˜ื•ืขื” ื‘ืฉื ื”ืคื•ื ืงืฆื™ื” ื–ื• ืื™ื ื“ื™ืงืฆื™ื” ื—ืฉื•ื‘ื” ืœื‘ืขื™ื™ืช ืงืจื™ืื•ืช. ืœื“ืขืช ืœืขื‘ื•ื“ ืขื AI ื–ื” ืœื ืœื ืœื›ืชื•ื‘ ืงื•ื‘ืฅ Instructions ื•ืœื–ื›ื•ืจ ืœื”ื•ืกื™ืฃ ืœื›ืœ ืคืจื•ืžืคื˜ ืฉื”ื•ื ืฆืจื™ืš ืœื•ื•ื“ื ืืช ื”ืฉืžื•ืช ืฉืœ ื”ืคื•ื ืงืฆื™ื•ืช. ืœื“ืขืช ืœืขื‘ื•ื“ ืขื AI ื–ื” ืงื•ื“ื ื›ืœ ืœืฉื™ื ืœื‘ ืฉื”ื˜ืขื•ืช ืฉืœื• ื”ื™ื ื”ื’ื™ื•ื ื™ืช ืœื’ืžืจื™ ื•ืื– ืœืชืงืŸ ืืช ื”ืคืจื•ื™ืงื˜.

ToCode
1 419
1. ืกื™ื›ื•ื™ ื˜ื•ื‘ ืฉื‘ืขืฉื•ืจ ื”ืงืจื•ื‘ ื ืžืฉื™ืš ืœืจืื•ืช ืืช ืฉื ื™ ืกื•ื’ื™ ื”ืชืคืงื™ื“ื™ื. ื™ื”ื™ื• ืœื ืžืขื˜ ืื ืฉื™ื ืฉื™ื™ื›ื ืกื• ืœืงื•ื“ ื•ืื ืืชื ืื•ื”ื‘ื™ื ืืช ื”ื”ื™ื‘ื˜ ื”ื˜ื›ื ื™ ืฉืœ ืื™ืš ื“ื‘ืจื™ื ื‘ื ื•ื™ื™ื ื•ืขื•ื‘ื“ื™ื ื–ื” ืžืกืœื•ืœ ืฉื›ื“ืื™ ืœืงื—ืช. ื™ืฉ ืคื” ื’ื ื”ืจื‘ื” ื›ื™ืฃ. ื™ื”ื™ื• ื’ื ืœื ืžืขื˜ ืื ืฉื™ื ืฉื™ืืคื™ื™ื ื• ืžืขืจื›ื•ืช ื•ืคื™ืฆ'ืจื™ื ืœืกื•ื›ื ื™ AI ื•ืื ืืชื ืžืกื•ื’ ื”ืื ืฉื™ื ืฉืื•ื”ื‘ื™ื ืœืชื›ื ืŸ ืžื” ืœื‘ื ื•ืช ื”ื—ื™ื™ื ืฉืœื›ื ื›ื ืจืื” ื™ื”ื™ื• ื”ืจื‘ื” ื™ื•ืชืจ ืžืขื ื™ื™ื ื™ื ื‘ื–ื›ื•ืช ื” AI. ื”ื™ื•ื ืื ื—ื ื• ืงื•ืจืื™ื ืœืชืคืงื™ื“ื™ื ืžื”ืกื•ื’ ื”ืจืืฉื•ืŸ ืžืคืชื—ื™ ืชื•ื›ื ื” ื•ืžื”ืกื•ื’ ื”ืฉื ื™ ืžื ื”ืœื™ ืžื•ืฆืจ, ืื‘ืœ ื”ื”ื™ื‘ื˜ื™ื ื”ืกืคืฆื™ืคื™ื™ื ืฉืœ ื›ืœ ืชืคืงื™ื“ ื”ื•ืœื›ื™ื ื‘ื•ื•ื“ืื™ ืœื”ืฉืชื ื•ืช. 2. ืื ื”ืขื•ืœื ืฉืœ ืคื™ืชื•ื— ืชื•ื›ื ื” ืžืขื ื™ื™ืŸ ืืชื›ื ื›ื“ืื™ ืœื”ืกืชื›ืœ ืขืœ AI ื‘ืชื•ืจ "ืžื•ืจื”" ื•ืœื ื‘ืชื•ืจ "ืขื•ื‘ื“". ืืชื ืœื ื‘ืชื—ืจื•ืช ืื™ืชื•, ืืชื ื›ืŸ ืฆืจื™ื›ื™ื ืœื”ื‘ื™ืŸ ื›ืœ ืฉื•ืจืช ืงื•ื“ ื•ืœื”ื™ื•ืช ืžืกื•ื’ืœื™ื ืœื›ืชื•ื‘ ื›ืœ ืžืขืจื›ืช ื‘ืขืฆืžื›ื. 3. ืžืคืชื—ื™ ืชื•ื›ื ื” ืขื“ื™ื™ืŸ ืœื•ืžื“ื™ื ื”ื›ื™ ื˜ื•ื‘ ื“ืจืš ื”ืงืœื“ื”. AI ืœื ืžืฉื ื” ืืช ื–ื”. ื›ื“ืื™ ืœื—ืฉื•ื‘ ืขืœ AI ื›ืžื• ืกืคืจ ืœื™ืžื•ื“ ื•ืœื ื›ืžื• ืžื—ืฉื‘ื•ืŸ. ื•ืœื—ื‘ืจ ืžื”ืคืชื™ื— ื”ื™ื™ืชื™ ืื•ืžืจ - ืืชื” ืฆื•ื“ืง. ื›ืœ ืžื” ืฉืืชื” ื›ื•ืชื‘ ื”ื™ื•ื ื” AI ื›ื•ืชื‘ ื˜ื•ื‘ ื™ื•ืชืจ. ื›ืจื’ืข ืžื‘ื—ื•ืฅ ื–ื” ื ืจืื” ื›ืื™ืœื• AI ื›ื•ืชื‘ ืงื•ื“ ื™ื•ืชืจ ื˜ื•ื‘ ื•ื™ื•ืชืจ ืžื”ืจ ืžื›ืœ ื”ืื ืฉื™ื ืฉืืชื” ืžื›ื™ืจ ื•ืงืฉื” ืœื”ื‘ื™ืŸ ืœืžื” ืฆืจื™ืš ืžืชื›ื ืชื™ื ื‘ืขื•ืœื. ืื‘ืœ ื“ื‘ืจื™ื ืฉืจื•ืื™ื ืžื›ืืŸ ืœื ืจื•ืื™ื ืžืฉื ื•ื”ืืžืช ื”ื™ื ืฉื”ื‘ื ื” ืžืขืจื›ืชื™ืช, ื”ื™ื›ืจื•ืช ืœืขื•ืžืง ืขื ืขื•ืœื ืคื™ืชื•ื— ื”ืชื•ื›ื ื” ื•ื‘ืขื™ืงืจ ื™ื›ื•ืœืช ื ื™ืชื•ื— ื•ื—ืฉื™ื‘ื” ืขื ื”ืžื•ืฉื’ื™ื ื‘ืขื•ืœื ื–ื” ื”ื™ื ืขื“ื™ื™ืŸ ืจื—ื•ืงื” ืžื”ื™ื›ื•ืœื•ืช ืฉืœ ืžืขืจื›ื•ืช AI. ื‘ืžื•ื‘ืŸ ืžืกื•ื™ื AI ื”ืขืœื” ืืช ื”ืจืฃ ื•ื”ื’ื‘ื™ืจ ืืช ืงืฆื‘ ื”ืœื™ืžื•ื“ ื”ืืคืฉืจื™. ื‘ื–ื›ื•ืช ื” AI ืืชื” ืœื•ืžื“ ื™ื•ืชืจ ืžื”ืจ, ืื‘ืœ ื›ืš ื’ื ื›ืœ ื”ืžืชื—ืจื™ื ืฉืœืš ืฉืžืชืžื•ื“ื“ื™ื ืขืœ ืื•ืชื ืชืคืงื™ื“ื™ื ื‘ืชืขืฉื™ื™ื”. ื•ื‘ืื•ืชื• ื ื•ืฉื ืฉื•ื•ื” ืœืงืจื•ื ื’ื ืืช ื”ืคื•ืกื˜ ื”ืื—ืจื•ืŸ ืฉืœ ื”ืกื•ืœื™ื“ื™ืช: https://www.hasolidit.com/ื•ื™ื™ื‘-ืงื•ื“ื™ื ื’-ืœืขืฆืžืื•ืช-ื›ืœื›ืœื™ืช. ืฉืืœืช ื”ืžืคืชื— ืฉืœื”: "ืื ื”ื“ื™ื•ื˜ื” ื›ืžื•ื ื™ ื™ื›ื•ืœื” โ€œืœืฉืื•ืœโ€ ืžื™ื•ืžื ื•ืช ื‘ื”ื™ื ืฃ ืจื’ืข, ื™ื›ื•ืœืช ืฉืื—ืจื™ื ื”ืฉืงื™ืขื• ืฉื ื™ื ื›ื“ื™ ืœืจื›ื•ืฉ ื•ืœืคืชื—, ื”ืื ืขื•ื“ ืืคืฉืจ ื‘ื›ืœืœ ืœื”ืชื™ื™ื—ืก ืืœื™ื” ื›ืžื™ื•ืžื ื•ืช?" ืื ื™ ืžื‘ื™ืŸ ืœืžื” ื–ื” ื ืจืื” ื›ื›ื” ืžื‘ื—ื•ืฅ. ืžื‘ืคื ื™ื ืื ื—ื ื• ื™ื•ื“ืขื™ื ืฉืจื•ื‘ ืžื•ื—ืœื˜ ืฉืœ ื”ืžืคืชื—ื™ื ื‘ืชืขืฉื™ื™ื” ืœื ื‘ื•ื ื™ื ืžืขืจื›ื•ืช ืฉืืคืฉืจ ืœื”ื—ืœื™ืฃ ืขื Vibe Coding. ื›ืฉื”ืชื—ื™ืœ ื˜ืจื ื“ ื” Outsource ื—ื‘ืจ ื”ื–ื”ื™ืจ ืื•ืชื™ ืฉืขื•ื“ ืจื’ืข ืœื ื™ื”ื™ื• ื‘ืืจืฅ ืžืคืชื—ื™ ืชื•ื›ื ื” ื›ื™ ื”ื›ืœ ื™ืขื‘ื•ืจ ืœื”ื•ื“ื•. ืขื‘ืจื• ื›ืžืขื˜ 20 ืฉื ื” ื•ืื ื—ื ื• ืขื•ื“ ืคื” ื•ืขื“ื™ื™ืŸ ื›ื•ืชื‘ื™ื ืงื•ื“. ื›ืŸ ื•ื™ื™ื‘ ืงื•ื“ื™ื ื’ ื–ื” ืžื“ืœื™ืง ืื‘ืœ ื–ื” ืจื—ื•ืง ืžืœืื™ื™ื ืขืœ ื”ืขื•ืœื ืฉืœ ืคื™ืชื•ื— ืชื•ื›ื ื”. ืžื” ื“ืขืชื›ื? ืื ื”ื™ื™ืชื ืžืชื—ื™ืœื™ื ื”ื™ื•ื ืœืœืžื•ื“ ืชื›ื ื•ืช ื”ื™ื™ืชื ืžืขื“ื™ืคื™ื ืœืจื•ืฅ ื•ืœื‘ื ื•ืช ืคืจื•ื™ืงื˜ื™ื ืขื AI ื‘ืชื•ืจ ืขื•ื‘ื“ ืื• ืœืœืžื•ื“ ืžื” ืขื•ืฉื” ื›ืœ ืฉื•ืจื” ืขื AI ื‘ืชื•ืจ ืžื•ืจื”? ื•ืœืžื”?

ToCode
1 419
ืœื™ืžื•ื“ื™ ืชื›ื ื•ืช ืขื AI - ืžื” ื™ื•ืชืจ ืงืœ, ืžื” ื™ื•ืชืจ ืงืฉื” ื•ืœืืŸ ื–ื” ื”ื•ืœืš ื—ื‘ืจ ืฉื•ืืœ - ืื ื™ ืจื•ืฆื” ืœืœืžื•ื“ ืชื›ื ื•ืช ืื‘ืœ ืœื ื‘ื˜ื•ื— ืื ื™ืฉ ื˜ืขื. ืื ื™ ืจื•ืฆื” ืœืขื‘ื•ื“ ื‘ืคื™ืชื•ื— ืื‘ืœ ื›ืœ ืžื” ืฉืื ื™ ืจื•ืฆื” ืœื›ืชื•ื‘ ื” AI ื›ื•ืชื‘ ื˜ื•ื‘ ื™ื•ืชืจ. ืžื™ ืฆืจื™ืš ืื•ืชื™ ืฉื ื‘ื›ืœืœ? ื‘ื•ืื• ื ืชื—ื™ืœ ื‘ืœืฉื™ื ืืช ื”ืงืœืคื™ื ืขืœ ื”ืฉื•ืœื—ืŸ: ื’'ืžื™ื ื™ ื™ื•ื“ืข ื”ื™ื•ื ืœื›ืชื•ื‘ ืžืฉื—ืง ืกื ื™ื™ืง ื™ื•ืชืจ ื˜ื•ื‘ ื•ื™ื•ืชืจ ืžื”ืจ ืžืžื” ืฉืื ื™ ื›ื•ืชื‘. ืงืœื•ื“ ื›ืชื‘ ืœื™ ืžืฉื—ืง ื›ืจื˜ื™ืกื™ื•ืช ืœืœื™ืžื•ื“ ืกืคืจื“ื™ืช ืขื ืžื ื’ื ื•ืŸ Spaced Repetition ื›ืฉื›ืœ ื”ืžื™ื“ืข ืฉืžื•ืจ ื‘ืงื‘ืฆื™ ื˜ืงืกื˜ ื•ื”ืชืจื’ื•ืœ ืžืฉื•ืจืช ื”ืคืงื•ื“ื” (ืจืืกื˜ ื›ืžื•ื‘ืŸ). ืœื ื™ื”ื™ื” ื”ื–ื•ื™ ืœื”ื’ื™ื“ ืฉื›ื‘ืจ ื”ื™ื•ื ืื• ื‘ืขืชื™ื“ ื”ืžืื•ื“ ืงืจื•ื‘ ืžื ื•ืขื™ AI ื™ื•ื›ืœื• ืœืคืชื•ืจ ื›ืœ ืชืจื’ื™ืœ ืชื›ื ื•ืช ืฉืœ ื‘ื™ืช ืกืคืจ ื™ื•ืชืจ ื˜ื•ื‘ ืžื”ืชืœืžื™ื“ื™ื ื•ื›ื ืจืื” ื’ื ื™ื•ืชืจ ื˜ื•ื‘ ืžื”ืžื•ืจื”. ืขื›ืฉื™ื• ืžื” ื–ื” ืื•ืžืจ ืขืœื™ื ื•? ืžื” ื™ื•ืชืจ ืงืœ ืขื‘ืจื• ืžื–ืžืŸ ื”ื™ืžื™ื ื‘ื”ื ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœื”ื–ื™ืข ืจืง ื›ื“ื™ ืฉืชื•ื›ื ื™ืช ืชืชืงืžืคืœ, ืชืจื•ืฅ ืื• ืืคื™ืœื• ืชื—ื–ื™ืจ ืชืฉื•ื‘ื” ื ื›ื•ื ื”. ื™ืฉ ืœืš ื‘ืขื™ื™ืช ืงื•ืžืคื™ืœืฆื™ื”? ืชื“ื‘ื™ืง ืื•ืชื” ืœ AI ื•ืชืงื‘ืœ ื”ืกื‘ืจ ืžืœื ืœื‘ืขื™ื” (ื›ื•ืœืœ ืืคืฉืจื•ืช ืœืฉืื•ืœ ืฉืืœื•ืช ื”ืžืฉืš). ื”ืชื•ื›ื ื™ืช ื”ืชืจืกืงื” ื‘ื’ืœืœ ื‘ืขื™ื™ืช ื–ื›ืจื•ืŸ? ื” AI ื™ืžืฆื ืœืš ืืช ื”ื˜ืขื•ืช. ื”ืชื•ื›ื ื™ืช ืœื ื”ื—ื–ื™ืจื” ืืช ื”ืชืฉื•ื‘ื” ื”ื ื›ื•ื ื”? ื” AI ื™ืกื‘ื™ืจ ืœืžื”. ื”ืชื•ื›ื ื™ืช ื ืจืื™ืช ืขื•ื‘ื“ืช? ื‘ื•ื ื ื™ืชืŸ ืœ AI ืœืงืจื•ื ื•ืœื•ื•ื“ื ืฉื”ื›ืœ ื ื›ื•ืŸ ื‘ 100% ื•ืœื”ืฆื™ืข ืฉื™ืคื•ืจื™ื. ื•ื”ื“ื•ื‘ื“ื‘ืŸ ืขืœ ื”ืงืฆืคืช - ืื—ืจื™ ืฉื›ื‘ืจ ืกื™ื™ืžืชื™ ืืช ื›ืœ ื”ืชืจื’ื™ืœื™ื ืื ื™ ื™ื›ื•ืœ ืœื‘ืงืฉ ืž AI ืœื™ื™ืฆืจ ืœื™ ืงื‘ื•ืฆื” ื ื•ืกืคืช ืฉืœ ืชืจื’ื•ืœื™ื ื›ื“ื™ ืœื•ื•ื“ื ืฉื”ื‘ื ืชื™ ื”ื›ืœ. ืžื™ ืฉืจื•ืฆื” ืœืœืžื•ื“ ื™ื›ื•ืœ ืœืงื‘ืœ ื”ื™ื•ื ืžื•ืจื” ืคืจื˜ื™ 24/7 ืฉืžืกื‘ื™ืจ ื›ืœ ืคืจื˜ ื•ืžื›ื™ืจ ืืช ื›ืœ ื”ื”ื™ืกื˜ื•ืจื™ื”. ืื– ื ื›ื•ืŸ ืžื ื•ืขื™ AI (ืœื“ืขืชื™) ืœื ืžืกืคื™ืง ื˜ื•ื‘ื™ื ื‘ื‘ื ื™ื™ืช ืกื™ืœื‘ื•ืก ืื• ื‘ื”ืกื‘ืจ ืžืืคืก, ืื‘ืœ ื‘ืชื•ืจ ืžื•ืฆืจ ืžืฉืœื™ื ืœืงื•ืจืก ื”ื ืžืฉืคืจื™ื ื›ืœ ื—ื•ื•ื™ื” ืœื™ืžื•ื“ื™ืช. ืžื” ื™ื•ืชืจ ืงืฉื” ื”ื‘ืขื™ื” ืฉืื ื—ื ื• ืœื ืžืฆืœื™ื—ื™ื ืœืขืฆื•ืจ ืฉื. ื”ื—ื•ื•ื™ื” ื”ืœื™ืžื•ื“ื™ืช ื”ืื ื•ืฉื™ืช ืฉืœ ื‘ื•ื’ืจื™ ืžืขืจื›ืช ื”ื—ื™ื ื•ืš ื”ื™ื ืžืจื“ืฃ ืื—ืจื™ ื”ืฆืœื—ื•ืช ืงื˜ื ื•ืช, ืžืจื•ืฅ ื›ื“ื™ ืœืกืžืŸ V ื•ืœื”ืฆืœื™ื— ื‘ืžื‘ื—ืŸ. ื‘ืขื•ืœื ืฉืœ AI ื–ืืช ื‘ืขื™ื”, ื›ื™ ื›ืœ ืชืจื’ื™ืœ ืœื™ืžื•ื“ื™ ืฉืชื ืกื• ืœืขืฉื•ืช ื” AI ื™ื›ื•ืœ ืœืคืชื•ืจ ื‘ืฉื‘ื™ืœื›ื ื™ื•ืชืจ ืžื”ืจ. ื”ื‘ืขื™ื” ื”ื–ืืช ื“ื•ืžื” ืœื‘ืขื™ื” ืฉืœ ืชืœืžื™ื“ื™ ื™ืกื•ื“ื™ ืขื ืžื—ืฉื‘ื•ืŸ. ื”ื ืœื ืžื‘ื™ื ื™ื ืœืžื” ืœื”ืชืืžืฅ ืœืคืชื•ืจ ืชืจื’ื™ืœ ื—ืฉื‘ื•ืŸ ื‘ืœื™ ืžื—ืฉื‘ื•ืŸ ื•ืื ื—ื ื• ืœื ืžื‘ื™ื ื™ื ืœืžื” ืœื”ืชืืžืฅ ืœื›ืชื•ื‘ ืชื•ื›ื ื™ืช ื‘ืœื™ AI. ืื‘ืœ ื”ื”ื‘ื“ืœ ื”ื•ื ืชื”ื•ืžื™: ืชืœืžื™ื“ื™ ื‘ื™ืช ืกืคืจ ื™ืกื•ื“ื™ ืœื•ืžื“ื™ื ื›ื™ ื”ื ื™ื•ื“ืขื™ื ืฉื‘ืžื‘ื—ืŸ ื”ืžื•ืจื” ืœื ืชืชืŸ ืœื”ื ืœื”ืฉืชืžืฉ ื‘ืžื—ืฉื‘ื•ืŸ, ื•ื›ื™ ื”ื ืขื•ื“ ืงื˜ื ื™ื. ืžื™ ืฉืœื•ืžื“ ืชื›ื ื•ืช ื—ื•ืฉื‘ ืขืœ ืื•ืคืฆื™ื•ืช ืœืชืขืกื•ืงื” ื•ื›ืจื’ืข ืงืฉื” ืœื• ืžืื•ื“ ืœืจืื•ืช ืื™ื–ื” ืขืจืš ื”ื•ื ื™ืงื‘ืœ ืžืœื™ืžื•ื“ื™ ืชื›ื ื•ืช. "ืžื” ื–ื” ืžื” ืฉืื ื™ ืืขืฉื” ื›ืœ ื”ื™ื•ื? ืื’ื™ื“ ืœ AI ืื™ื–ื” ืงื•ื“ ืœื›ืชื•ื‘?". ื” AI, ื‘ื›ืš ืฉื”ื•ืคืš ืืช ืœื™ืžื•ื“ื™ ื”ืชื›ื ื•ืช ืœื”ืจื‘ื” ื™ื•ืชืจ ืงืœื™ื, ืžื•ืจื™ื“ ืžืฉืžืขื•ืชื™ืช ืžื”ืžื•ื˜ื™ื‘ืฆื™ื” ืœืœืžื•ื“. ื‘ื’ืœืœ ืฉืื ื—ื ื• ืœื ื™ื•ื“ืขื™ื ืื™ืš ื™ืจืื• ื”ื—ื™ื™ื ื”ืžืงืฆื•ืขื™ื™ื ืฉืœ ืžืคืชื—ื™ ืชื•ื›ื ื” ื‘ืขื•ื“ ืฉื ืชื™ื™ื ืื ื—ื ื• ืžืจื’ื™ืฉื™ื ืฉืงืฉื” ืœื”ืชื—ื™ื™ื‘ ื•ืœืœืžื•ื“ ืชื›ื ื•ืช, ืฉืื•ืœื™ ืœื ื™ื”ื™ื” ื‘ื• ืฆื•ืจืš. ื•ื‘ื›ืœ ื–ืืช ืžืชื›ื ืชื™ื ื”ื™ื•ื ืฉืขื•ื‘ื“ื™ื ืขื AI ืžืชื—ืœืงื™ื ืœ-2. ื™ืฉ ืืช ืžื™ ืฉืžืฉืชืžืฉ ื‘ AI ื›ื“ื™ ืœื”ืฉืชืคืจ, ืžื‘ื™ืŸ ื›ืœ ืฉื•ืจื” ืฉื” AI ื›ื•ืชื‘ ื•ื“ื•ืื’ ืฉื” AI ื™ื›ืชื•ื‘ ืืช ื”ืงื•ื“ ืฉื”ื•ื ื”ื™ื” ื›ื•ืชื‘ ื‘ืขืฆืžื•. ื›ืŸ ื” AI ื›ื•ืชื‘ ื‘ื“ืงื” ืžืฉื—ืง ืกื ื™ื™ืง ืฉื”ื™ื” ืœื•ืงื— ืœื™ ื™ื•ื ืœื›ืชื•ื‘ ื•ื–ื” ืžื“ื”ื™ื, ืื‘ืœ ื‘ื’ืœืœ ืฉื›ืชื‘ืชื™ ื›ื‘ืจ ืžืฉื—ืงื™ ืกื ื™ื™ืง ื“ื•ืžื™ื ืื ื™ ื™ื›ื•ืœ ืœื”ืกืชื›ืœ ืขืœ ืžืฉื—ืง ื”ืกื ื™ื™ืง ืฉื” AI ื›ืชื‘ ื•ืœื•ื•ื“ื ืฉื”ื•ื ื–ื”ื” ืœืžื” ืฉืื ื™ ื”ื™ื™ืชื™ ื›ื•ืชื‘. ื›ืŸ ื” AI ื›ื•ืชื‘ ืืœืฃ ื‘ื“ื™ืงื•ืช ื™ื•ืชืจ ืžื”ืจ ืžืžื” ืฉืœื•ืงื— ืœื™ ืœืฉื™ื ื›ื•ืก ืงืคื”, ืื‘ืœ ืžืกืคื™ืง ืœื™ ืœืจื•ืฅ ืขืœ ื”ื‘ื“ื™ืงื•ืช ื”ืืœื” ื‘ืขื™ืŸ ื›ืžื” ื“ืงื•ืช ื›ื“ื™ ืœื”ื‘ื™ืŸ ืื ื”ื•ื ื”ื™ื” ื‘ื›ื™ื•ื•ืŸ ืื• ืื ืฆืจื™ืš ืœื”ืขื™ืฃ ืืช ื›ืœ ื”ื‘ื“ื™ืงื•ืช ื•ืœื™ื™ืฆืจ ืื•ืชืŸ ืžื—ื“ืฉ ืขื ืคืจื•ืžืคื˜ ื™ื•ืชืจ ืžื“ื•ื™ืง. ืกื•ื’ ืฉื ื™ ืฉืœ ืžืคืชื—ื™ื ืžืขื“ื™ืคื™ื ืœื“ืœื’ ืขืœ ื”ืงื•ื“ ื•ืœื”ืชืžืงื“ ื‘ Spec ื‘ืฆื“ ืื—ื“ ื•ื‘ Output ื‘ืฆื“ ืฉื ื™. ื”ื ื™ื ืกื—ื• ื™ื—ื“ ืขื ื” AI ืžืคืจื˜ ื‘ื“ื™ืงื•ืช ืžื“ื•ื™ืง ืœืื•ืชื• ืžืฉื—ืง ืกื ื™ื™ืง ื•ืื– ื™ื•ื•ื“ืื• ืฉื”ืงื•ื“ ืขื•ืฉื” ืžื” ืฉืฆืจื™ืš ืœืคื™ ื”ืžืคืจื˜. ื”ื ืœื ืจื•ืฆื™ื ืœื“ืขืช ืžื” ื›ืชื•ื‘ ืฉื ื•ืžืžื™ืœื ืžืจื’ื™ืฉื™ื ืฉื–ื” ื‘ื–ื‘ื•ื– ื–ืžืŸ. ืœื ืฆืจื™ืš ืœืœืžื•ื“ ืžื” ื–ื” ืขืฅ ืื“ื•ื ืฉื—ื•ืจ ื•ืžืชื™ ืœื”ืฉืชืžืฉ ื‘ื• ื‘ืžืขืจื›ืช ืืžื™ืชื™ืช, ืžืกืคื™ืง ืœืืคื™ื™ืŸ ืœ AI ืžื” ืจืžืช ื”ื‘ื™ืฆื•ืขื™ื ื”ื ื“ืจืฉืช ื•ืฉื” AI ื™ื‘ื—ืจ ืื™ื–ื” ืžื‘ื ื” ื ืชื•ื ื™ื ื™ืชืื™ื. ื•ืฆืจื™ืš ืœื”ื’ื™ื“ ื‘ื™ื•ืฉืจ, ืื ื—ื ื• ืœื ื™ื•ื“ืขื™ื ืื™ืš ื™ืจืื• ื”ื—ื™ื™ื ื”ืžืงืฆื•ืขื™ื™ื ืฉืœ ืžืคืชื—ื™ ืชื•ื›ื ื” ื‘ืขื•ื“ ืฉื ืชื™ื™ื, ืืจื‘ืข ืื• ืฉืžื•ื ื” ืฉื ื™ื, ื•ืื ื”ื ื™ื”ื™ื• ื™ื•ืชืจ ื“ื•ืžื™ื ืœืชื™ืื•ืจ ื”ืจืืฉื•ืŸ ืื• ื”ืฉื ื™. ื›ืœ ืชื™ืื•ืจ ืžืชืื™ื ืœืขื‘ื•ื“ื” ืื—ืจืช, ื•ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœื‘ื—ื•ืจ "ืžื” ืื ื—ื ื• ืจื•ืฆื™ื ืœื”ื™ื•ืช" ื‘ืœื™ ืœื“ืขืช ืื ื”ื“ื‘ืจ ืฉื ื‘ื—ืจ ื‘ื›ืœืœ ื™ื”ื™ื” ืงื™ื™ื ื›ืฉื ืกื™ื™ื ืืช ื”ืœื™ืžื•ื“ื™ื. ื•ื‘ื›ืœ ื–ืืช, ืฉื ื™ ื”ืชื™ืื•ืจื™ื ื›ืŸ ืขื•ื–ืจื™ื ืœื ื• ืœืชื›ื ืŸ ืงืฆืช ื™ื•ืชืจ ื‘ื‘ื™ืจื•ืจ ืืช ื”ื”ืžืฉืš. ื”ื ื” ื”ื ืงื•ื“ื•ืช ื”ืžืจื›ื–ื™ื•ืช ืฉื”ื™ื™ืชื™ ืžืฉืื™ืจ ื‘ืจืืฉ:

ToCode
1 419
ืคืชืจื•ืŸ AoC 2025 ื™ื•ื 5 ื—ื™ื“ืช ื”ื˜ื•ื•ื—ื™ื ืืชืžื•ืœ ื›ืชื‘ืชื™ ืขืœ ื‘ื“ื™ืงืช cover? ืฉืœ ืจื•ื‘ื™ ื•ื”ื™ื•ื ื ืจืื” ืื™ืš ื”ื™ื ืขื•ื–ืจืช ืœื ื• ืœืคืชื•ืจ ื‘ืขื™ื” ืืžื™ืชื™ืช ืžืชื•ืš Advent Of Code ื”ืื—ืจื•ืŸ ื•ืื ื™ ืžืชื›ื•ื•ืŸ ืœื—ืœืง ื”ืฉื ื™ ืฉืœ ื™ื•ื 5. ืžื” ืฉืื”ื‘ืชื™ ื‘ื—ืœืง ื”ื–ื” ื”ื™ื” ืฉื›ืฉื ื™ืกื™ืชื™ ืœืงื—ืช ืืช ื”ืคืชืจื•ืŸ ืฉืœ ื—ืœืง 1 ื•ืœื”ืจื—ื™ื‘ ืื•ืชื• ืœื—ืœืง 2 ื–ื” ืคืฉื•ื˜ ืœื ืขื‘ื“ ื•ื›ืš ื”ื‘ื ืชื™ ืืช ื”ื˜ืขื•ืช ืฉื”ื™ืชื” ืœื™ ื‘ื—ืœืง 1. ืื‘ืœ ื‘ื•ืื• ืœื ื ืงื“ื™ื ืืช ื”ืžืื•ื—ืจ ื•ื ืœืš ืœืจืื•ืช ืืช ื”ืชืจื’ื™ืœ. ื—ืœืง 1 ื—ื™ืคื•ืฉ ื“ื‘ืจื™ื ืฉืœื ื‘ืฉื•ื ื˜ื•ื•ื— ื‘ื—ืœืง ื”ืจืืฉื•ืŸ ืฉืœ ื”ืชืจื’ื™ืœ ืงื™ื‘ืœื ื• ืจืฉื™ืžื” ืฉืœ ื˜ื•ื•ื—ื™ื ื•ืจืฉื™ืžื” ืฉืœ ืžื–ื”ื™ื ื•ื”ื™ื™ื ื• ืฆืจื™ื›ื™ื ืœื‘ืฆืข ื‘ื“ื™ืงืช ืงื™ื•ื ื›ืœื•ืžืจ ืœืจืื•ืช ืžื™ ืžื”ืคืจื™ื˜ื™ื ืœื ื ืžืฆื ื‘ืฉื•ื ื˜ื•ื•ื—. ื‘ื’ืœืœ ืฉ Range ืชื•ืžืš ื‘ื‘ื“ื™ืงืช ืฉื™ื™ื›ื•ืช ืžื”ื™ืจื” ื–ื” ื”ื™ื” ืงืœ ื•ืื—ืจื™ ืคืขื ื•ื— ื”ืงืœื˜ ืืคืฉืจ ื”ื™ื” ืœื”ืจื™ืฅ:
def part1
  @to_check.count {|i| @fresh_ids.any? {|r| r.include?(i) } }
end

ื›ืืฉืจ @to_check ื–ื” ืจืฉื™ืžืช ื”ืขืจื›ื™ื ืฉืฆืจื™ืš ืœื‘ื“ื•ืง, @fresh_ids ื–ื• ืจืฉื™ืžืช ื”ื˜ื•ื•ื—ื™ื ื• include? ื‘ื•ื“ืง ืื ื˜ื•ื•ื— ืžื›ื™ืœ ืžืกืคืจ. ื™ืฉ ืคื” ืœื•ืœืื” ื›ืคื•ืœื” ืฉืจืฆื” ืขืœ ื›ืœ ืื—ื“ ืžื”ืžืกืคืจื™ื ืœื‘ื“ื•ืง ื•ื‘ื•ื“ืงืช ืื•ืชื• ืžื•ืœ ื›ืœ ืื—ื“ ืžื”ื˜ื•ื•ื—ื™ื. ื—ืœืง 2 ื—ื™ืคื•ืฉ ื›ืœ ื”ื“ื‘ืจื™ื ื‘ื—ืœืง ื”ืฉื ื™ ื”ืชื‘ืงืฉื ื• ืœืกืคื•ืจ ื›ืžื” ืืœืžื ื˜ื™ื ืฉื•ื ื™ื ืžื•ื›ืœื™ื ื‘ื›ืœ ื”ื˜ื•ื•ื—ื™ื. ืœื“ื•ื’ืžื” ืขื‘ื•ืจ ืจืฉื™ืžืช ื”ื˜ื•ื•ื—ื™ื:
3-5
10-14
16-20
12-18
ื”ืชืฉื•ื‘ื” ื”ื™ื 14 ื›ืœื•ืžืจ ื”ืžืกืคืจื™ื 3, 4, 5, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 ื• 20. ืคื” ื›ื‘ืจ ื‘ืจื•ืจ ืฉื”ืœื•ืœืื” ื”ื›ืคื•ืœื” ืœื ืชืขื‘ื•ื“ ื›ื™ ื‘ืงืœื˜ ืืžื™ืชื™ ื™ืฉ ื™ื•ืชืจ ืžื“ื™ ืขืจื›ื™ื ืœื‘ื“ื•ืง. ื’ื ืœืคืจืง ืืช ื”ื˜ื•ื•ื—ื™ื ืœืžืกืคืจื™ื ืฉืœื”ื ื•ืœืกื ืŸ ื›ืคื•ืœื™ื (ื”ืจืขื™ื•ืŸ ื”ืฉื ื™ ืฉืœื™) ื™ื”ื™ื” ื‘ื–ื‘ื–ื ื™ ื•ืœื ื™ืฆืœื™ื— ืœื”ืชืžื•ื“ื“ ืขื ื”ืงืœื˜ ื”ืืจื•ืš. ืžื” ืขื•ืฉื™ื? ื–ื•ื›ืจื™ื ืฉื˜ื•ื•ื—ื™ื ื”ื ืจืฆื™ืคื™ื ื•ืœื›ืŸ ื”ืžื˜ืจื” ืฉืœื ื• ื”ื™ื ืœื‘ื ื•ืช ืจืฉื™ืžื” ืฉืœ ื˜ื•ื•ื—ื™ื ืœืœื ื—ืคื™ืคื•ืช, ื›ืœื•ืžืจ ืืช ืจืฉื™ืžืช ื”ื˜ื•ื•ื—ื™ื ืžื”ื“ื•ื’ืžื” ื ืจืฆื” ืœื”ืคื•ืš ืœืจืฉื™ืžื”:
3-5
10-20
ืื™ืš ืขื•ืฉื™ื ืืช ื–ื”? ืžืชื—ื™ืœื™ื ืขื ืจืฉื™ืžื” ืจื™ืงื”, ื›ืœ ืคืขื ืฉืงื•ืจืื™ื ื˜ื•ื•ื— ืžื—ืคืฉื™ื ืืช ื›ืœ ื”ื˜ื•ื•ื—ื™ื ืฉืžืชื ื’ืฉื™ื ืื™ืชื• (ืื• ืฉื”ื ืžื›ื™ืœื™ื ืื•ืชื•, ืื• ืฉื”ื•ื ืžื›ื™ืœ ืื•ืชื, ืื• ืฉื”ื ืžื›ื™ืœื™ื ืืช ื”ื”ืชื—ืœื” ืฉืœ ื”ื˜ื•ื•ื— ื”ื—ื“ืฉ ืื• ืืช ื”ืกื•ืฃ ืฉืœื•), ืžื•ื—ืงื™ื ืื•ืชื ื•ืžื™ื™ืฆืจื™ื ื˜ื•ื•ื— ื—ื“ืฉ ืฉืžื›ื™ืœ ืืช ื›ืœ ืžื” ืฉืžื—ืงื ื• ื•ืืช ื”ื“ื‘ืจ ื”ื—ื“ืฉ. ื—ื•ื–ืจื™ื ืขืœ ื–ื” ื‘ืœื•ืœืื” ืขื“ ืฉื›ื™ืกื™ื ื• ืืช ื›ืœ ื”ื˜ื•ื•ื—ื™ื. ื–ื” ื”ืงื•ื“:
def add_range(r)
  affected, unaffected = ranges.partition do |range|
    range.cover?(r) || r.cover?(range) || range.cover?(r.begin) || range.cover?(r.end)
  end

  self.ranges = unaffected
  new_range = ([*affected, r].map {|r| r.begin }.min)..([*affected, r].map {|r| r.end }.max)
  return add_range(new_range) unless affected.empty?

  self.ranges << r
end
ืืœื” ืžื›ื ืฉืฆืจื™ื›ื™ื ื”ืกื‘ืจ ื ื•ืกืฃ ืžื•ื–ืžื ื™ื ืœื”ื“ื‘ื™ืง ืืช ื”ืคื•ื ืงืฆื™ื” ืœืžื ื•ืข AI ืœื‘ื—ื™ืจืชื›ื ื•ืœื‘ืงืฉ ื”ืกื‘ืจ ื›ื•ืœืœ ื“ื•ื’ืžืื•ืช ืžื‘ื˜ื™ื— ืฉื”ืชื•ืฆืื” ืžืขื ื™ื™ื ืช. ืกืš ื”ื›ืœ ื–ื” ื”ืงื•ื“ ื”ืžืœื ืฉืœ ื”ืคืชืจื•ืŸ:
require 'set'

class RangeSet
  attr_accessor :ranges

  def initialize
    @ranges = []
  end

  def add_range(r)
    affected, unaffected = ranges.partition do |range|
      range.cover?(r) || r.cover?(range) || range.cover?(r.begin) || range.cover?(r.end)
    end

    self.ranges = unaffected
    new_range = ([*affected, r].map {|r| r.begin }.min)..([*affected, r].map {|r| r.end }.max)
    return add_range(new_range) unless affected.empty?

    self.ranges << r
  end
end

class Day5
  attr_accessor :fresh_ids, :to_check
  def initialize(fname)
    fresh_ids, to_check = File
      .read(fname)
      .lines
      .map {|l| l.strip }
      .slice_when {|e1, e2| e1.empty? }
      .to_a

    @fresh_ids = fresh_ids.reject(&:empty?).map do |r|
      r.split("-").map(&:to_i).then {|a| Range.new(*a) }
    end
    @to_check = to_check.map(&:to_i)
  end

  def part1
    @to_check.count {|i| @fresh_ids.any? {|r| r.include?(i) } }
  end

  def part2
    stock = RangeSet.new
    @fresh_ids.each {|r| stock.add_range(r) }
    stock
  end
end

if $PROGRAM_NAME == __FILE__
  d = Day5.new("input.txt")
  pp d.part1
  pp d.part2.ranges.map {|r| r.size }.sum
end

ToCode
1 419
ืคืชืจื•ืŸ AoC 2025 ื™ื•ื 5 ื—ื™ื“ืช ื”ื˜ื•ื•ื—ื™ื ืืชืžื•ืœ ื›ืชื‘ืชื™ ืขืœ ื‘ื“ื™ืงืช cover? ืฉืœ ืจื•ื‘ื™ ื•ื”ื™ื•ื ื ืจืื” ืื™ืš ื”ื™ื ืขื•ื–ืจืช ืœื ื• ืœืคืชื•ืจ ื‘ืขื™ื” ืืžื™ืชื™ืช ืžืชื•ืš Advent Of Code ื”ืื—ืจื•ืŸ ื•ืื ื™ ืžืชื›ื•ื•ืŸ ืœื—ืœืง ื”ืฉื ื™ ืฉืœ ื™ื•ื 5. ืžื” ืฉืื”ื‘ืชื™ ื‘ื—ืœืง ื”ื–ื” ื”ื™ื” ืฉื›ืฉื ื™ืกื™ืชื™ ืœืงื—ืช ืืช ื”ืคืชืจื•ืŸ ืฉืœ ื—ืœืง 1 ื•ืœื”ืจื—ื™ื‘ ืื•ืชื• ืœื—ืœืง 2 ื–ื” ืคืฉื•ื˜ ืœื ืขื‘ื“ ื•ื›ืš ื”ื‘ื ืชื™ ืืช ื”ื˜ืขื•ืช ืฉื”ื™ืชื” ืœื™ ื‘ื—ืœืง 1. ืื‘ืœ ื‘ื•ืื• ืœื ื ืงื“ื™ื ืืช ื”ืžืื•ื—ืจ ื•ื ืœืš ืœืจืื•ืช ืืช ื”ืชืจื’ื™ืœ. ื—ืœืง 1 ื—ื™ืคื•ืฉ ื“ื‘ืจื™ื ืฉืœื ื‘ืฉื•ื ื˜ื•ื•ื— ื‘ื—ืœืง ื”ืจืืฉื•ืŸ ืฉืœ ื”ืชืจื’ื™ืœ ืงื™ื‘ืœื ื• ืจืฉื™ืžื” ืฉืœ ื˜ื•ื•ื—ื™ื ื•ืจืฉื™ืžื” ืฉืœ ืžื–ื”ื™ื ื•ื”ื™ื™ื ื• ืฆืจื™ื›ื™ื ืœื‘ืฆืข ื‘ื“ื™ืงืช ืงื™ื•ื ื›ืœื•ืžืจ ืœืจืื•ืช ืžื™ ืžื”ืคืจื™ื˜ื™ื ืœื ื ืžืฆื ื‘ืฉื•ื ื˜ื•ื•ื—. ื‘ื’ืœืœ ืฉ Range ืชื•ืžืš ื‘ื‘ื“ื™ืงืช ืฉื™ื™ื›ื•ืช ืžื”ื™ืจื” ื–ื” ื”ื™ื” ืงืœ ื•ืื—ืจื™ ืคืขื ื•ื— ื”ืงืœื˜ ืืคืฉืจ ื”ื™ื” ืœื”ืจื™ืฅ:
def part1
  @to_check.count {|i| @fresh_ids.any? {|r| r.include?(i) } }
end

ื›ืืฉืจ @to_check ื–ื” ืจืฉื™ืžืช ื”ืขืจื›ื™ื ืฉืฆืจื™ืš ืœื‘ื“ื•ืง, @fresh_ids ื–ื• ืจืฉื™ืžืช ื”ื˜ื•ื•ื—ื™ื ื• include? ื‘ื•ื“ืง ืื ื˜ื•ื•ื— ืžื›ื™ืœ ืžืกืคืจ. ื™ืฉ ืคื” ืœื•ืœืื” ื›ืคื•ืœื” ืฉืจืฆื” ืขืœ ื›ืœ ืื—ื“ ืžื”ืžืกืคืจื™ื ืœื‘ื“ื•ืง ื•ื‘ื•ื“ืงืช ืื•ืชื• ืžื•ืœ ื›ืœ ืื—ื“ ืžื”ื˜ื•ื•ื—ื™ื. ื—ืœืง 2 ื—ื™ืคื•ืฉ ื›ืœ ื”ื“ื‘ืจื™ื ื‘ื—ืœืง ื”ืฉื ื™ ื”ืชื‘ืงืฉื ื• ืœืกืคื•ืจ ื›ืžื” ืืœืžื ื˜ื™ื ืฉื•ื ื™ื ืžื•ื›ืœื™ื ื‘ื›ืœ ื”ื˜ื•ื•ื—ื™ื. ืœื“ื•ื’ืžื” ืขื‘ื•ืจ ืจืฉื™ืžืช ื”ื˜ื•ื•ื—ื™ื:
3-5
10-14
16-20
12-18
ื”ืชืฉื•ื‘ื” ื”ื™ื 14 ื›ืœื•ืžืจ ื”ืžืกืคืจื™ื 3, 4, 5, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 ื• 20. ืคื” ื›ื‘ืจ ื‘ืจื•ืจ ืฉื”ืœื•ืœืื” ื”ื›ืคื•ืœื” ืœื ืชืขื‘ื•ื“ ื›ื™ ื‘ืงืœื˜ ืืžื™ืชื™ ื™ืฉ ื™ื•ืชืจ ืžื“ื™ ืขืจื›ื™ื ืœื‘ื“ื•ืง. ื’ื ืœืคืจืง ืืช ื”ื˜ื•ื•ื—ื™ื ืœืžืกืคืจื™ื ืฉืœื”ื ื•ืœืกื ืŸ ื›ืคื•ืœื™ื (ื”ืจืขื™ื•ืŸ ื”ืฉื ื™ ืฉืœื™) ื™ื”ื™ื” ื‘ื–ื‘ื–ื ื™ ื•ืœื ื™ืฆืœื™ื— ืœื”ืชืžื•ื“ื“ ืขื ื”ืงืœื˜ ื”ืืจื•ืš. ืžื” ืขื•ืฉื™ื? ื–ื•ื›ืจื™ื ืฉื˜ื•ื•ื—ื™ื ื”ื ืจืฆื™ืคื™ื ื•ืœื›ืŸ ื”ืžื˜ืจื” ืฉืœื ื• ื”ื™ื ืœื‘ื ื•ืช ืจืฉื™ืžื” ืฉืœ ื˜ื•ื•ื—ื™ื ืœืœื ื—ืคื™ืคื•ืช, ื›ืœื•ืžืจ ืืช ืจืฉื™ืžืช ื”ื˜ื•ื•ื—ื™ื ืžื”ื“ื•ื’ืžื” ื ืจืฆื” ืœื”ืคื•ืš ืœืจืฉื™ืžื”:
3-5
10-20
ืื™ืš ืขื•ืฉื™ื ืืช ื–ื”? ืžืชื—ื™ืœื™ื ืขื ืจืฉื™ืžื” ืจื™ืงื”, ื›ืœ ืคืขื ืฉืงื•ืจืื™ื ื˜ื•ื•ื— ืžื—ืคืฉื™ื ืืช ื›ืœ ื”ื˜ื•ื•ื—ื™ื ืฉืžืชื ื’ืฉื™ื ืื™ืชื• (ืื• ืฉื”ื ืžื›ื™ืœื™ื ืื•ืชื•, ืื• ืฉื”ื•ื ืžื›ื™ืœ ืื•ืชื, ืื• ืฉื”ื ืžื›ื™ืœื™ื ืืช ื”ื”ืชื—ืœื” ืฉืœ ื”ื˜ื•ื•ื— ื”ื—ื“ืฉ ืื• ืืช ื”ืกื•ืฃ ืฉืœื•), ืžื•ื—ืงื™ื ืื•ืชื ื•ืžื™ื™ืฆืจื™ื ื˜ื•ื•ื— ื—ื“ืฉ ืฉืžื›ื™ืœ ืืช ื›ืœ ืžื” ืฉืžื—ืงื ื• ื•ืืช ื”ื“ื‘ืจ ื”ื—ื“ืฉ. ื—ื•ื–ืจื™ื ืขืœ ื–ื” ื‘ืœื•ืœืื” ืขื“ ืฉื›ื™ืกื™ื ื• ืืช ื›ืœ ื”ื˜ื•ื•ื—ื™ื. ื–ื” ื”ืงื•ื“:
def add_range(r)
  affected, unaffected = ranges.partition do |range|
    range.cover?(r) || r.cover?(range) || range.cover?(r.begin) || range.cover?(r.end)
  end

  self.ranges = unaffected
  new_range = ([*affected, r].map {|r| r.begin }.min)..([*affected, r].map {|r| r.end }.max)
  return add_range(new_range) unless affected.empty?

  self.ranges << r
end
ืืœื” ืžื›ื ืฉืฆืจื™ื›ื™ื ื”ืกื‘ืจ ื ื•ืกืฃ ืžื•ื–ืžื ื™ื ืœื”ื“ื‘ื™ืง ืืช ื”ืคื•ื ืงืฆื™ื” ืœืžื ื•ืข AI ืœื‘ื—ื™ืจืชื›ื ื•ืœื‘ืงืฉ ื”ืกื‘ืจ ื›ื•ืœืœ ื“ื•ื’ืžืื•ืช ืžื‘ื˜ื™ื— ืฉื”ืชื•ืฆืื” ืžืขื ื™ื™ื ืช. ืกืš ื”ื›ืœ ื–ื” ื”ืงื•ื“ ื”ืžืœื ืฉืœ ื”ืคืชืจื•ืŸ:
require 'set'

class RangeSet
  attr_accessor :ranges

  def initialize
    @ranges = []
  end

  def add_range(r)
    affected, unaffected = ranges.partition do |range|
      range.cover?(r) || r.cover?(range) || range.cover?(r.begin) || range.cover?(r.end)
    end

    self.ranges = unaffected
    new_range = ([*affected, r].map {|r| r.begin }.min)..([*affected, r].map {|r| r.end }.max)
    return add_range(new_range) unless affected.empty?

    self.ranges << r
  end
end

class Day5
  attr_accessor :fresh_ids, :to_check
  def initialize(fname)
    fresh_ids, to_check = File
      .read(fname)
      .lines
      .map {|l| l.strip }
      .slice_when {|e1, e2| e1.empty? }
      .to_a

    @fresh_ids = fresh_ids.reject(&:empty?).map do |r|
      r.split("-").map(&:to_i).then {|a| Range.new(*a) }
    end
    @to_check = to_check.map(&:to_i)
  end

  def part1
    @to_check.count {|i| @fresh_ids.any? {|r| r.include?(i) } }
  end

  def part2
    stock = RangeSet.new
    @fresh_ids.each {|r| stock.add_range(r) }
    stock
  end
end

if $PROGRAM_NAME == __FILE__
  d = Day5.new("input.txt")
  pp d.part1
  pp d.part2.ranges.map {|r| r.size }.sum
end

ToCode
1 419
ื”ื™ื•ื ืœืžื“ืชื™: ื‘ื“ื™ืงืช ืฉื™ื™ื›ื•ืช ืœ Range ื‘ Ruby ืชืžื™ื“ ื”ืฉืชืžืฉืชื™ ื‘ include? ื›ื“ื™ ืœื‘ื“ื•ืง ืื ืžืกืคืจ ื ืžืฆื ื‘ื˜ื•ื•ื— ืžืกื•ื™ื ื•ื”ืงื•ื“ ื”ื–ื” ืขื•ื‘ื“ ื•ื“ื™ ื™ืขื™ืœ:
3.3.5 :007 > (1..10).include?(5)
 => true
ืจื•ื‘ื™ ืœื ืžืชืืžืฅ ืœืขื‘ื•ืจ ืื™ื‘ืจ-ืื™ื‘ืจ ื‘ื˜ื•ื•ื— ืžืื—ืจ ื•ื–ื” ื˜ื•ื•ื— ืฉืœ ืžืกืคืจื™ื ืฉืœืžื™ื ื•-5 ื”ื•ื ืžืกืคืจ ืฉืœื ืื– ืžืกืคื™ืง ืœื‘ื“ื•ืง ืฉื”ื•ื ื’ื“ื•ืœ ืžื”ื”ืชื—ืœื” ื•ืงื˜ืŸ ืžื”ืกื•ืฃ. ืื’ื‘ ืงืœ ืœืจืื•ืช ืืช ื–ื” ื›ืฉืžื—ืคืฉื™ื ืฉื‘ืจ ื‘ืชื•ืš ื”ื˜ื•ื•ื—:
3.3.5 :010 > (1..10).include?(4.5)
 => true
ื›ืฉื‘ืจื•ืจ ืฉืื ื ื ืกื” ืœืขื‘ื•ืจ ืื™ื‘ืจ-ืื™ื‘ืจ ืœื ื ืžืฆื ืืช ืืจื‘ืข ื•ื—ืฆื™:
3.3.5 :011 > (1..10).to_a.include?(4.5)
 => false
ื”ืฉื‘ื•ืข ื ืชืงืœืชื™ ื‘ืžืงืจื” ื‘ืคื•ื ืงืฆื™ื” conver? ืฉื ืจืืชื” ื›ืื™ืœื• ืขื•ืฉื” ืื•ืชื• ื“ื‘ืจ:
3.3.5 :008 > (1..10).cover?(5)
 => true
3.3.5 :009 > (1..10).cover?(4.5)
=> true
ื’ื ื”ื™ื ืœื ืฆืจื™ื›ื” ืœืจื•ืฅ ืขืœ ื›ืœ ื”ื˜ื•ื•ื— ื•ืžืกืชืคืงืช ื‘ื‘ื“ื™ืงืช ืงืฆื•ื•ืช. ืื– ืื™ืคื” ื–ื” ืžืชื—ื™ืœ ืœื”ื™ื•ืช ืžืขื ื™ื™ืŸ? ืžืกืชื‘ืจ ืฉืื ื—ื ื• ืฆืจื™ื›ื™ื 2 ืคื•ื ืงืฆื™ื•ืช ื›ื“ื™ ืœื˜ืคืœ ืื—ืจืช ื‘ื˜ื•ื•ื—ื™ื ืฉืœ ื“ื‘ืจื™ื ื™ื•ืชืจ ืžืกื•ื‘ื›ื™ื ืžืžืกืคืจื™ื, ืœืžืฉืœ ืžื—ืจื•ื–ื•ืช. ื‘ืจื•ื‘ื™ ื’ื ื–ื” ื˜ื•ื•ื—:
3.3.5 :013 > ('a'..'z').class
 => Range
ื•ื›ืžื• ืขื ืฉื‘ืจื™ื ื’ื ื‘ื˜ื•ื•ื— ืฉืœ ืžื—ืจื•ื–ื•ืช ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื‘ื“ื•ืง ืฉืžื—ืจื•ื–ืช ืžืกื•ื™ืžืช ื ืžืฆืืช ื‘ื™ืŸ ื”ื”ืชื—ืœื” ืœืกื•ืฃ:
3.3.5 :014 > ('a'..'z').include?('t')
 => true
3.3.5 :015 > ('a'..'z').cover?('t')
 => true
ืืช ื”ื”ื‘ื“ืœ ื‘ื™ืŸ cover ืœ include ืื ื—ื ื• ืžื’ืœื™ื ื›ืฉืžื ืกื™ื ืœื—ืคืฉ ืžื—ืจื•ื–ืช ืฉื ืžืฆืืช ื‘ื˜ื•ื•ื— ืื‘ืœ ืœื ืชื•ืคื™ืข ื‘ืจืฉื™ืžื” ืื ื ื”ืคื•ืš ืืช ื”ื˜ื•ื•ื— ืœืžืขืจืš:
3.3.5 :018 > ('a'..'d').to_a
 => ["a", "b", "c", "d"]
3.3.5 :019 > ('a'..'d').include?('bob')
 => false
3.3.5 :020 > ('a'..'d').cover?('bob')
 => true
ืขื›ืฉื™ื• ืฆื•ื“ืงื™ื ืžื™ ืฉื™ื’ื™ื“ื• ืฉื–ื” ืœื ื”ื•ื’ืŸ ื›ืœืคื™ ื”ืฉื‘ืจื™ื ืขื ื”ื ืงื•ื“ื” ื”ืขืฉืจื•ื ื™ืช, ื”ืจื™ ื”ื ื”ื™ื• ืฆืจื™ื›ื™ื ืœืงื‘ืœ ืืช ืื•ืชื• ื™ื—ืก ืฉืœ ืžื—ืจื•ื–ื•ืช. ืฆื•ื“ืงื™ื ื’ื ืื ืชื’ื™ื“ื• ืฉื–ื” ืžื‘ืœื‘ืœ ืฉืื•ืชื” ืคื•ื ืงืฆื™ื” include? ืœืคืขืžื™ื ืžื—ื–ื™ืจื” ืชื•ืฆืื” ื‘ O(1) ื•ืคืขืžื™ื ืื—ืจื•ืช ืžื—ื–ื™ืจื” ืืช ื”ืชื•ืฆืื” ื‘ O(n). ืื ื™ ื™ื›ื•ืœ ืจืง ืœืขื ื•ืช ืฉื”ื—ื™ื™ื ืœื ื”ื•ื’ื ื™ื ื•ืจื•ื‘ื™ ื‘ืืžืช ื™ื›ื•ืœื” ืœื”ื™ื•ืช ืœื ืขืงื‘ื™ืช ืื‘ืœ ื˜ื•ื‘ ืฉื’ื™ืœื™ืชื™ ืืช cover? ืฉื™ื™ื—ื•ื“ื™ืช ืœื˜ื•ื•ื—ื™ื ื•ืชืžื™ื“ ืžื—ื–ื™ืจื” ืชืฉื•ื‘ื” ื‘ O(1).

ToCode
1 419
ืื™ืš ืืคืฉืจ ืœืคืจื•ืฅ ืœืžื™ืฉื”ื• ืœื˜ืœื’ืจื ื•ืœืžื” ื—ืฉื•ื‘ ืœืฉื™ื ืœื‘ ื‘ื”ื ื—ื” ืฉื”ืื™ืจืื ื™ื ื‘ืืžืช ืคืจืฆื• ืจืง ืœื˜ืœื’ืจื ืฉืœ ื‘ื ื˜ ื‘ืœื™ ืœื’ืขืช ื‘ืฉืืจ ื”ื˜ืœืคื•ืŸ ืฉืœื• ืขื•ืœื” ื”ืฉืืœื” ืื™ืš ื–ื” ืขื•ื‘ื“, ืื™ืš ืืคืฉืจ ืœืคืจื•ืฅ ืœืžื™ืฉื”ื• ืœื—ืฉื‘ื•ืŸ ื”ื˜ืœื’ืจื, ืื™ืš ืื ื™ ืฉื•ืžืจ ืฉืœื ื™ืคืจืฆื• ืœื™ ืœื—ืฉื‘ื•ืŸ ื”ื˜ืœื’ืจื ื•ืžื” ืขื•ืฉื™ื ื›ื“ื™ ืœืฆืžืฆื ื ื–ืงื™ื ืื ืคืจื™ืฆื” ื”ืชืจื—ืฉื”. ืื ื™ ื›ืžื•ื‘ืŸ ืœื ื™ื•ื“ืข ื›ืœื•ื ืขืœ ืžื” ื‘ืืžืช ืงืจื” ื‘ื™ืŸ ื”ืื™ืจืื ื™ื ืœื‘ื ื˜ ืื‘ืœ ืืคืฉืจ ืœื“ืžื™ื™ืŸ ืชืจื—ื™ืฉื™ื: 1. ื”ืฉืชืœื˜ื•ืช ื–ืžื ื™ืช ืขืœ ืžืกืคืจ ื˜ืœืคื•ืŸ - ื”ื“ืจืš ื”ื›ื™ ืงืœื” ืœืคืจื•ืฅ ืœื˜ืœื’ืจื ืื• ืœื›ืœ ืฉื™ืจื•ืช ืฉืžืชื‘ืกืก ืขืœ ืื™ืžื•ืช ื“ืจืš ืžืกืคืจ ื˜ืœืคื•ืŸ ื”ื™ื ืœื”ืฉื™ื’ ื’ื™ืฉื” ื–ืžื ื™ืช ืœืžืกืคืจ ื”ื˜ืœืคื•ืŸ ืฉืœ ื”ืงืจื‘ืŸ ืื• ืœืกืžืกื™ื ืฉืžื’ื™ืขื™ื ืืœื™ื•. ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ื“ืจืš ืคืจื™ืฆื” ืœื—ื‘ืจื” ืกืœื•ืœืืจื™ืช ืื• ืœืื™ื–ื•ืฉื”ื™ ืื ื˜ื ืช ืฉื™ื“ื•ืจ ื‘ื“ืจืš, ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ื–ื™ื•ืฃ ืฉืœ ื‘ืงืฉืช ื ื™ื•ื“ ืžืกืคืจ, ืื•ื‘ื“ืŸ ืกื™ื ืื• ื“ื™ื•ื•ื— ืขืœ ื’ื ื™ื‘ื”. ืœื“ื•ื’ืžื” ืื ื™ ืžืชืงืฉืจ ืœืกืœืงื•ื, ืžื–ื“ื”ื” ื‘ืชื•ืจ ื‘ื ื˜ ื•ืžืกืคืจ ืฉื’ื ื‘ื• ืœื™ ืืช ื”ื˜ืœืคื•ืŸ ื•ืื ื™ ื—ื™ื™ื‘ ืกื™ื ื—ื“ืฉ ืืชืžื•ืœ. ืกืœืงื•ื ืฉื•ืœื—ื™ื ืื•ืชื™ ืœืงื ื•ืช ืกื™ื ืจื™ืง ื‘ืชื—ื ืช ืฉื™ืจื•ืช ื•ืื– ืื ื™ ื ื•ืชืŸ ืœื”ื ืืช ื”ืžืกืคืจ ืฉื›ืชื•ื‘ ืขืœ ื”ืกื™ื ื•ื”ื ืžืขื‘ื™ืจื™ื ืืช ืžืกืคืจ ื”ื˜ืœืคื•ืŸ ืฉืœื™ ืœืกื™ื ื”ื—ื“ืฉ ื•ื”ืจื™ืง. ื‘ื•ื, ืงื™ื‘ืœืชื™ ืืช ืžืกืคืจ ื”ื˜ืœืคื•ืŸ ืฉืœ ื”ืงืจื‘ืŸ. ืœื”ืขืจื›ืชื™ ื–ื” ืชืจื—ื™ืฉ ืคื—ื•ืช ืกื‘ื™ืจ ื›ื™ ืžื™ ืฉืžืฉื™ื’ ืฉืœื™ื˜ื” ืขืœ ืžืกืคืจ ื˜ืœืคื•ืŸ ืœื ื™ืขืฆื•ืจ ื‘ื”ืฉืชืœื˜ื•ืช ืจืง ืขืœ ื”ื˜ืœื’ืจื. 2. ื”ืฉืชืœื˜ื•ืช ืขืœ ืกืฉืŸ ืคืขื™ืœ - ืื ืœื‘ื ื˜ ื”ื™ื” ื˜ืœื’ืจื ืžื—ื•ื‘ืจ ืขืœ ื”ืžื—ืฉื‘ ื•ื’ื ืขืœ ื”ื˜ืœืคื•ืŸ, ื•ืื•ืœื™ ื’ื ืขืœ ื˜ืœืคื•ืŸ ื™ืฉืŸ, ืืคืฉืจ ืœื’ื ื•ื‘ ืืช ืื—ื“ ื”ืžื›ืฉื™ืจื™ื ื”ืื—ืจื™ื ื”ืžื—ื•ื‘ืจื™ื ืœื˜ืœื’ืจื ื•ื“ืจื›ื• ืœื”ื’ื™ืข ืœื›ืœ ื”ืฉื™ื—ื•ืช ื•ืื ืฉื™ ื”ืงืฉืจ ื‘ื˜ืœื’ืจื. ื–ื” ืœื ืžืื•ื“ ืžืกืชื“ืจ ืขื ื”ื“ื™ื•ื•ื— ืฉื”ื“ื‘ืจ ื”ื™ื—ื™ื“ ืฉื ืคืจืฅ ื”ื™ื” ื”ื˜ืœื’ืจื ืื‘ืœ ืืฃ ืคืขื ืื™ ืืคืฉืจ ืœื“ืขืช. 3. ื”ืฉืชืœื˜ื•ืช ืขืœ ื”ื˜ืœืคื•ืŸ ืขื ืจื•ื’ืœื” - ืื ื”ืชืงื™ื ื• ืจื•ื’ืœื” ืขืœ ื”ื˜ืœืคื•ืŸ ืฉืœ ื‘ื ื˜ ื”ืื™ืจืื ื™ื ื™ื›ืœื• ื›ืžื•ื‘ืŸ ืœื”ื’ื™ืข ืœื˜ืœื’ืจื ืฉืœื• ื›ืžื• ื’ื ืœื›ืœ ืฉื™ืจื•ืช ืื—ืจ ืืœื™ื• ื”ื™ื” ืžื—ื•ื‘ืจ ืžื”ืžื›ืฉื™ืจ. ื‘ืžืฆื‘ ื›ื–ื” ื›ื ืจืื” ื”ื™ื™ื ื• ืจื•ืื™ื ื”ื“ืœืคื” ื™ื•ืชืจ ืžืฉืžืขื•ืชื™ืช ืขื ื”ืงืœื˜ื•ืช ืฉื™ื—ื•ืช, ืชืžื•ื ื•ืช ื•ืคืจื˜ื™ ื—ืฉื‘ื•ืŸ ื‘ื ืง ื›ืš ืฉื’ื ื–ื” ืœื ื ืฉืžืข ืกื‘ื™ืจ. 4. ืฉื™ืžื•ืฉ ื‘ืœืงื•ื— ื˜ืœื’ืจื ืฆื“ ืฉืœื™ืฉื™ ืชืžื™ื ืื• ืžืจื•ืฉืข - ืื ื‘ื ื˜ ื”ืฉืชืžืฉ ื‘ืชื•ื›ื ืช ื˜ืœื’ืจื ืฆื“ ืฉืœื™ืฉื™ ื•ื”ื™ื ืœื ืฉืžืจื” ื›ืžื• ืฉืฆืจื™ืš ืขืœ ืคืจื˜ื™ ื”ื”ืชื—ื‘ืจื•ืช ื”ืื™ืจืื ื™ื ื™ื›ืœื• ืœื ืฆืœ ืคืจืฆื” ื‘ืื•ืชื” ืชื•ื›ื ืช ืฆื“ ืฉืœื™ืฉื™ ื›ื“ื™ ืœื”ื’ื™ืข ืœืคืจื˜ื™ ื”ื›ื ื™ืกื”. 5. ืคืจื™ืฆื” ืœืฉืจืชื™ ื˜ืœื’ืจื ืขืฆืžื - ืื ื”ืื™ืจืื ื™ื ื”ืฆืœื™ื—ื• ืœื”ืฉื™ื’ ื’ื™ืฉื” ืœืฉืจืชื™ื ืฉืœ ื˜ืœื’ืจื ืขืฆืžื” ืื• ืœืฉืชื•ืœ ืงื•ื“ ื–ื“ื•ื ื™ ื‘ืชื•ื›ื ืช ื˜ืœื’ืจื ืื• ื‘ืจื•ืจ ืฉืืคืฉืจ ื”ื™ื” ืœื ืฆืœ ืืช ื–ื” ื›ื“ื™ ืœื”ื’ื™ืข ืœื˜ืœืคื•ืŸ ืฉืœ ื‘ื ื˜. ื’ื ืชืจื—ื™ืฉ ื–ื” ืœื ื ืฉืžืข ืกื‘ื™ืจ ื›ื™ ืื ื›ื‘ืจ ื™ืฉ ืœืš ื’ื™ืฉื” ืœืฉืจืชื™ื ืฉืœ ื˜ืœื’ืจื ืืชื” ืชืฉืชืžืฉ ื‘ื–ื” ื›ื“ื™ ืœื”ืขืœื•ืช ื’ืจืกื” ื–ื“ื•ื ื™ืช ืฉืœ ื”ืืคืœื™ืงืฆื™ื” ืฉืชืชืงื™ืŸ ืจื•ื’ืœื” ืขืœ ื”ืžื›ืฉื™ืจ ืฉืœ ื‘ื ื˜ ื•ืœื ืชืขืฆื•ืจ ื‘ื˜ืœื’ืจื. 6. ืคื™ืฉื™ื ื’ ื•ื”ื ื“ืกื” ื—ื‘ืจืชื™ืช - ืงื™ื‘ืœืช ืœื™ื ืง ื‘ื˜ืœื’ืจื ืฉืืชื” ืžืื•ื“ ืจื•ืฆื” ืœืคืชื•ื—, ืืชื” ืœื•ื—ืฅ ืขืœื™ื• ื•ืžื’ื™ืข ืœืžืกืš ืฉื ืจืื” ื›ืžื• ืžืกืš ื”ื›ื ื™ืกื” ืฉืœ ื˜ืœื’ืจื ื•ื•ื‘ ืื‘ืœ ืžื–ื•ื™ืฃ. ืืชื” ืžืชื—ื‘ืจ ื‘ืžืกืš ื–ื” ื•-ื‘ื•ื, ื”ืชื•ืงืฃ ืงื™ื‘ืœ ื’ื™ืฉื” ืœื—ืฉื‘ื•ืŸ ืฉืœืš. ื˜ืœื’ืจื ื•ื•ื•ื˜ืกืืค ืžืืคืฉืจื•ืช ืœื ื• ืœืกืจื•ืง ืงื•ื“ QR ื›ื“ื™ ืœื”ืชื—ื‘ืจ, ื›ืœื•ืžืจ ืื ื—ื ื• ื ื›ื ืกื™ื ืœืืชืจ ื˜ืœื’ืจื, ืฉื ื™ืฉ ืงื•ื“ QR ื•ืžื‘ืงืฉื™ื ืžืืชื ื• ืœืคืชื•ื— ืืช ื”ื˜ืœื’ืจื ื‘ื˜ืœืคื•ืŸ ื•ืœืกืจื•ืง ืืช ื”ืงื•ื“ ื›ื“ื™ ืœื”ืชื—ื‘ืจ. ืขื›ืฉื™ื• ื ื ื™ื— ืฉื‘ืžืงื•ื ืœื”ื’ื™ืข ืœืืชืจ ื˜ืœื’ืจื ื”ืžืงื•ืจื™ ื”ื’ืขืชื ืœืืชืจ ื˜ืœื’ืจื ื•ื•ื‘ ืžื–ื•ื™ืฃ. ืืชื ืžื ืกื™ื ืœื”ืชื—ื‘ืจ ื“ืจืš ืกืจื™ืงืช ื”ืงื•ื“ ืื‘ืœ ืœืžืขืฉื” ืืชื ืกื•ืจืงื™ื ืงื•ื“ ืฉื”ืชื•ืงืฃ ื™ืฆืจ ื•ืื—ืจื™ ืฉืชืกืจืงื• ืื•ืชื• ืืชื ืชื—ื‘ืจื• ืืช ื”ืชื•ืงืฃ ืœื˜ืœื’ืจื ืฉืœื›ื. ืื• - ื ื›ื ืกืชื ืœืืชืจ ื›ื“ื™ ืœื”ืชื—ื‘ืจ ืœื˜ืœื’ืจื ื•ื•ื‘, ื”ื ื›ื•ืชื‘ื™ื ืฉื”ื ืฉืœื—ื• ืงื•ื“ ืœื˜ืœื’ืจื ื‘ื˜ืœืคื•ืŸ ืฉืœื›ื ื•ืืชื ืžื›ื ื™ืกื™ื ืืช ื”ืงื•ื“ ื‘ืืชืจ ืื‘ืœ ื‘ืขืฆื ื”ื™ื™ืชื ื‘ืืชืจ ืžืชื—ื–ื” ื•ื”ืงื•ื“ ืฉืœื›ื ื”ื’ื™ืข ืœืชื•ืงืฃ ืฉืžืฉืชืžืฉ ื‘ื• ื›ื“ื™ ืœื”ืชื—ื‘ืจ ื‘ืฉืžื›ื ืœื˜ืœื’ืจื. ืื ื”ืกื™ืคื•ืจ ืฉืœ ื‘ื ื˜ ื ื›ื•ืŸ ื•ืจืง ื”ื˜ืœื’ืจื ื ืคืจืฅ ืื– ื”ืชืจื—ื™ืฉ ื”ื–ื” ื”ื•ื ื”ืชืจื—ื™ืฉ ื”ืกื‘ื™ืจ ื‘ื™ื•ืชืจ. ื‘ืงื‘ื•ืฆื” ืฉืœ ื˜ื•ืงื•ื“ ื›ืžืขื˜ ื›ืœ ื™ื•ื ื—ืฉื‘ื•ืŸ ื˜ืœื’ืจื ืคืจื•ืฅ ืžืคืจืกื ืื™ื–ื•ืฉื”ื™ ื”ื•ื“ืขืช ืกืคืื. ื”ื—ืฉื‘ื•ื ื•ืช ื”ืคืจื•ืฆื™ื ื”ืืœื” ื”ื™ื• ืฉื™ื™ื›ื™ื ืคืขื ืœืื ืฉื™ื ืืžื™ืชื™ื™ื (ืื•ืœื™ ืขื“ื™ื™ืŸ). ืžืชืงืคื•ืช ื”ื ื“ืกื” ื—ื‘ืจืชื™ืช ื•ื–ื™ื•ืคื™ื ื‘ื˜ืœื’ืจื ื”ืคื›ื• ืœืฆืขืจื ื• ืœืžืื•ื“ ื ืคื•ืฆื•ืช ื•ื”ื•ืคื›ื•ืช ืืช ื”ื—ื™ื™ื ื‘ื˜ืœื’ืจื ืœืžืขื™ื™ืคื™ื ื™ื•ืชืจ. ืื ื™ ืžืงื•ื•ื” ืฉื˜ืœื’ืจื ืชืžืฆื ื“ืจืš ืœื’ืจืฉ ืืช ื”ืกืงืืžืจื™ื ื•ืœืกื ืŸ ืืช ื”ืžืชืงืคื•ืช. ืขื“ ืื– ื”ื™ื• ื–ื”ื™ืจื™ื, ืฉื™ืžื• ืœื‘ ืœื ืœื”ื›ื ืก ืœืœื™ื ืงื™ื ื—ืฉื•ื“ื™ื ื•ืœื ืœื”ืชื—ื‘ืจ ืœื˜ืœื’ืจื ื“ืจืš ืžืกื›ื™ ื›ื ื™ืกื” ืžืคื•ืงืคืงื™ื.

ToCode
1 419
ื’ื ื‘ืœื™ ืœืงืจื•ื ืœืขื•ืžืง ืื ื—ื ื• ืจื•ืื™ื ืฉื”ื”ืขืจื•ืช ื ืžื—ืงื•. ื‘ JavaScript ื”ืžื™ื“ืข ืขื“ื™ื™ืŸ ืžื•ืขืชืง ืื‘ืœ ื‘ืœื™ ื”ื”ืกื‘ืจ ืฉื”ื™ื” ื‘ื”ืขืจื” ื‘ืคื™ื™ืชื•ืŸ. ืžื™ ืฉืจืง ืžืกืชื›ืœ ืขืœ ื”ืฉื•ืจื” ื”ื–ื• ื‘ JavaScript ืื•ืœื™ ืœื ืžื‘ื™ืŸ ืžื” ืžื˜ืจืชื”:
this.events.push(["start", [token.name, { ...(token.attrs || {}) }]]);
      } else {
ื™ื•ืชืจ ืžื–ื” ื’ื ืืช ื”ืœื•ื’ื™ืงื” ืฉืœ open_elements ื” AI ืžื—ืง ืœื’ืžืจื™ ื•ื›ืขืช ืžืฉืชื ื” ื–ื” ื ืฉืืจ ื‘ืชื•ืจ ืžืฉืชื ื” ืฉืœ ื”ืžื—ืœืงื” ื‘ืœื™ ืฉื™ืžื•ืฉ ืืžื™ืชื™ ืฉื. ืื‘ืœ ื”ื‘ื“ื™ืงื•ืช ืขื‘ืจื•... ืื ื™ ืฉื•ืžืข ืืชื›ื. ืกื˜ ืฉืœ 9,200 ื‘ื“ื™ืงื•ืช ื—ื™ื™ื‘ ืœืฉื›ื ืข ืื•ืชื ื• ืฉื”ืกืคืจื™ื” ืชื•ืืžืช "100%" ืžื‘ื—ื™ื ืช ื”ืชื ื”ื’ื•ืช ืœืกืคืจื™ื” ื”ืžืงื•ืจื™ืช. ื•ื–ื” ื‘ื“ื™ื•ืง ืžื” ืฉื”ื•ืคืš ืืช ื”ื“ื•ื’ืžื” ื”ื–ืืช ืœืžื•ืฆืœื—ืช ื›ื“ื™ ืฉื ืฉื™ื ืœื‘ ืฉืงื•ื“ ื”ื•ื ืœื ืจืง ื”ืชื•ืฆืื” ืฉืœื•. ื”ื”ืขืจื•ืช, ื”ื”ื›ื ื” ืฉืื ื—ื ื• ื‘ื•ื ื™ื ืคื ื™ืžื” ืœืฉื™ื ื•ื™ื™ื ืขืชื™ื“ื™ื™ื, ืืคื™ืœื• ื”ื‘ื—ื™ืจื” ื‘ืฉืžื•ืช ืžืกื•ื™ืžื™ื ื•ื‘ืกื’ื ื•ืŸ ื›ืชื™ื‘ื” ืžืกื•ื™ื, ื›ืœ ืืœื” ืžืฉืคื™ืขื™ื ืขืœ ืื™ื›ื•ืช ื”ืžืขืจื›ืช. ืžืฉืคื™ืขื™ื ืขืœ ื”ื™ื›ื•ืœืช ืœืชื—ื–ืง, ืœืฉืคืจ ื•ืœื”ืจื—ื™ื‘ ืื•ืชื” ืžื—ืจ ื•ื‘ื”ืžืฉืš. ื”ื‘ืขื™ื” ื›ืืŸ ื”ื™ื ืœื ืฉ AI ืชืจื’ื ืืช ื”ืงื•ื“. ื›ืžื• ืฉ AI ืชืจื’ื ืืช ื”ืงื•ื“ ื”ื•ื ื”ื™ื” ื™ื›ื•ืœ ืœืชืจื’ื ื’ื ืืช ื”ื”ืขืจื•ืช ื•ืœืฉืžื•ืจ ืขืœ ื”ืจื•ื— ื”ืžืงื•ืจื™ืช ื•ื”ืงืจื™ืื•ืช ืฉืœ ื”ืกืคืจื™ื” ื”ืžืงื•ืจื™ืช. ื”ื‘ืขื™ื” ื”ื™ื ืฉืœ AI ืื™ืŸ "ื˜ืขื", ืื™ืŸ ืืช ื”ื—ื•ื•ื™ื” ื”ืื ื•ืฉื™ืช ืฉืœ ืœืงืจื•ื ืงื•ื“ ื•ืœื—ืฉื•ื‘ ื”ืื ื–ื” ืงื•ื“ ื”ืกืคืจื™ื” ืฉืื ื™ ืจื•ืฆื”, ื”ืื ื”ืงื•ื“ ื”ื–ื” ืžื‘ื˜ื ืืช ื”ื™ื“ื™ืขื•ืช ื•ื”ื ื™ื—ื•ืฉื™ื ืฉืœื™ ืœื’ื‘ื™ ื”ืขืชื™ื“ ืฉืœ ื”ืกืคืจื™ื”. ื”ื‘ืขื™ื” ื”ื™ื ืœื ืฉ AI ื›ืชื‘ ืืช ื”ืงื•ื“ ืืœื ืฉืืฃ ืื—ื“ ืœื ืงืจื ืืช ื”ืงื•ื“ ื•ื”ืชืœื‘ื˜ ื‘ื›ืœ ื”ืฉืืœื•ืช ืฉื”ื˜ืจื™ื“ื• ืืช ื”ื™ื•ืฆืจ ืฉืœ ืกืคืจื™ื™ืช ื”ืคื™ื™ืชื•ืŸ ื”ืžืงื•ืจื™ืช. ื”ื›ืœ ื‘ืกื“ืจ ืฉ AI ื™ื›ืชื•ื‘ ืงื•ื“ ื›ืœ ืขื•ื“ ื™ืฉ ื‘ืกื•ืฃ ื‘ืŸ ืื“ื ืฉืงื•ืจื ืื•ืชื•.

ToCode
1 419
ืชืฉืขืช ืืœืคื™ื ื‘ื“ื™ืงื•ืช ืขื‘ืจื• ืกื™ื™ืžื•ืŸ ื•ื•ื™ืœืกื•ืŸ ื ืชืŸ ืœ AI ืœืชืจื’ื ืกืคืจื™ื™ืช ืคืขื ื•ื— HTML ืžืคื™ื™ืชื•ืŸ ืœ JavaScript. ื”ืงื•ื“ ื”ืžืงื•ืจื™ ื‘ืคื™ื™ืชื•ืŸ ื ืžืฆื ื›ืืŸ: https://github.com/EmilStenstrom/justhtml/ ื•ื”ืงื•ื“ ืฉืœ ืกื™ื™ืžื•ืŸ ื‘ JavaScript ื ืžืฆื ื›ืืŸ: https://github.com/simonw/justjshtml/ ืœืกืคืจื™ื” ื™ืฉ ื—ื‘ื™ืœืช ื‘ื“ื™ืงื•ืช ืฉืœ 9,200 ื‘ื“ื™ืงื•ืช ื•ื” AI ื ืขื–ืจ ื‘ื‘ื“ื™ืงื•ืช ืืœื” ื‘ื–ืžืŸ ื›ืชื™ื‘ืช ื”ืงื•ื“. ื›ืœ ืคืขื ื” AI ื›ืชื‘ ืงื•ื“, ื”ืจื™ืฅ ืืช ื”ื‘ื“ื™ืงื•ืช, ื–ื™ื”ื” ืžื” ืœื ืขื‘ืจ ื•ืชื™ืงืŸ. ื”ืชื•ืฆืื” ื”ื™ื ื—ื‘ื™ืœื” ืขื ืชืื™ืžื•ืช ื›ืžืขื˜ ืžืœืื” ืฉื ื›ืชื‘ื” ื‘ื–ืžืŸ ืฉืกื™ื™ืžื•ืŸ ืงื™ืฉื˜ ืขืฅ ื—ื’ ืžื•ืœื“ ื•ืฆืคื” ื‘ืกืจื˜. ืกื™ื™ืžื•ืŸ ื”ืขืœื” ืฉืืœื•ืช ื—ืฉื•ื‘ื•ืช ื‘ื‘ืœื•ื’ ืฉืœื• ืœื’ื‘ื™ ื”ืžืฉืžืขื•ื™ื•ืช ืฉืœ ืชืจื’ื•ื ื›ื–ื” ืขืœ ืขื•ืœื ื”ืชื•ื›ื ื” ื‘ื›ืœืœื•ืชื• ื•ืขืœ ื”ืžืฉืžืขื•ืช ื•ื”ื—ืฉื™ื‘ื•ืช ืฉืœ ืงื•ื“ ื‘ืคืจื˜. ืื ื™ ืžืžืœื™ืฅ ืœืงืจื•ื ืืช ื”ืคื•ืกื˜ ืฉืœื• ื’ื. ืื ื™ ืจื•ืฆื” ื›ืืŸ ืœื”ื•ืกื™ืฃ ื›ืžื” ืชื”ื™ื•ืช ืžืฉืœื™. ื”ืงื•ื“ ืขืฆืžื• ืฉืœ ื” AI ืฉืœ ืกื™ื™ืžื•ืŸ ื‘ืืžืช ืžืื•ื“ ื“ื•ืžื” ืœืงื•ื“ ื”ืžืงื•ืจื™ ืจื•ื‘ ื”ื–ืžืŸ, ืื‘ืœ ืžื“ื™ ืคืขื ื”ื•ื ื‘ื•ืจื—, ืœืžืฉืœ ื” AI ืžื—ืง ื”ืขืจื•ืช ื‘ื—ืœืง ืžื”ืงื‘ืฆื™ื, ืžื—ืง ืžื’ื‘ืœื•ืช ื‘ืงื‘ืฆื™ื ืื—ืจื™ื ื•ืœืคืขืžื™ื ืืคื™ืœื• ืฉื™ื ื” ืœื•ื’ื™ืงื”. ื“ื•ื’ืžื” ืื—ืช ื”ื™ื ื”ืงืœืืก StreamSink ืฉื‘ื’ืจืกืช ื”ืคื™ื™ืชื•ืŸ ื ืจืื” ื›ืš:
class _DummyNode:
    namespace: str = "html"


class StreamSink:
    """A sink that buffers tokens for the stream API."""

    tokens: list[StreamEvent]
    open_elements: list[_DummyNode]

    def __init__(self) -> None:
        self.tokens = []
        self.open_elements = []  # Required by tokenizer for rawtext checks

    def process_token(self, token: Tag | CommentToken | DoctypeToken | Any) -> int:
        # Tokenizer reuses token objects, so we must copy data
        if isinstance(token, Tag):
            # Copy tag data
            self.tokens.append(
                (
                    "start" if token.kind == Tag.START else "end",
                    (token.name, token.attrs.copy()) if token.kind == Tag.START else token.name,
                )
            )
            # Maintain open_elements stack for tokenizer's rawtext checks
            if token.kind == Tag.START:
                # We need a dummy object with namespace for tokenizer checks
                # Tokenizer checks: stack[-1].namespace
                # We can just use a simple object
                self.open_elements.append(_DummyNode())
            else:  # Tag.END
                if self.open_elements:
                    self.open_elements.pop()
                # If open_elements is empty, we ignore the end tag for rawtext tracking purposes
                # (it's an unmatched end tag at the root level)

        elif isinstance(token, CommentToken):
            self.tokens.append(("comment", token.data))

        elif isinstance(token, DoctypeToken):
            dt = token.doctype
            self.tokens.append(("doctype", (dt.name, dt.public_id, dt.system_id)))

        return 0  # TokenSinkResult.Continue

    def process_characters(self, data: str) -> None:
        """Handle character data from tokenizer."""
        self.tokens.append(("text", data))

ื•ื‘ื’ืจืกืช ื” JavaScript ื ืจืื” ื›ืš:
class StreamSink {
  constructor() {
    this.events = [];
    this.openElements = [{ namespace: "html" }];
  }

  processToken(token) {
    if (token instanceof Tag) {
      if (token.kind === Tag.START) {
        this.events.push(["start", [token.name, { ...(token.attrs || {}) }]]);
      } else {
        this.events.push(["end", token.name]);
      }
      return TokenSinkResult.Continue;
    }

    if (token instanceof CommentToken) {
      this.events.push(["comment", token.data]);
      return TokenSinkResult.Continue;
    }

    if (token instanceof DoctypeToken) {
      const dt = token.doctype;
      this.events.push(["doctype", [dt?.name ?? null, dt?.publicId ?? null, dt?.systemId ?? null]]);
      return TokenSinkResult.Continue;
    }

    return TokenSinkResult.Continue;
  }

  processCharacters(data) {
    this.events.push(["text", data]);
  }
}