ã³ãŒãã£ã³ã°ãã¹ããæ€èšŒæžã¿ã®10é±é宿ã«ãªãã¥ã©ã ã§æ»ç¥ãããïŒð
ã³ãŒãã£ã³ã°ãã¹ãè¬çŸ©
ã©ããéžã¹ã°ããã§ããããïŒ ð¬
ã³ãŒãã£ã³ã°ãã¹ãã®è¬çŸ©ã¯æ°å€ããããŸãããå®éã«æ€èšŒãããè¬çŸ©ã¯ããã»ã©å€ããããŸãããç§ã¯å®éã«3幎éåŠçãæããã¢ã«ãŽãªãºã ãç¥ããªãåŠçãIT倧æäŒæ¥ã«åæ Œãããçµéšã«åºã¥ããŠããã®è¬çŸ©ãäœããŸããã
* å®éã«åŠçãã¡ãåæ ŒããåŸã«éã£ãŠãããã«ãã¯ïŒLINEïŒã®äžéšãæ·»ä»ããŸãã
[é
éã®æ°æ åæ Œ]
[LINEåæ Œ]
[LINEãã³ã¬(NAVER WEBTOON)åæ Œ]
[ãã€ããŒåæ Œ]
[ã«ã«ãªåæ Œ]
[ìŒì±é»å åæ Œ]
åæ Œè
ãã¡ã®
åè¬ã¬ãã¥ãŒã確èªããŠã¿ãŠãã ãã ðª
âïž [ãã£ãšå€ãã®åè¬ã¬ãã¥ãŒãèŠã«è¡ã]
C++ïŒç¥ããªããŠã倧äžå€«ã§ãïŒ
3幎ã®ããŠããŠãè©°ã蟌ãã ã¢ã«ãŽãªãºã ææ¬ã ãã§å¯èœã§ãã
æ©ããã°3æ¥ãé
ããŠã2é±éããã°ååã§ãïŒ
* 3幎éåŠçãæããŠããŠãC++ãç¥ããªãåŠçãçè§£ãããŸã§ã«ããã£ãæéã®æå°å€ãšæå€§å€ã§ãã
äŸé¡ãããŒã¹ã«ãC++ã®åºç€ããäžæ©ãã€äžå¯§ã«èª¬æããŸãã
ã³ãŒãã£ã³ã°ãã¹ãã«ããŸãã«ãå¿
èŠãªããŒã¿æ§é ããã³å
šè¬çãªC++ã®STLã®äœ¿ãæ¹ãã¹ãŠã芪åã«æããŸãã
ã³ãŒãã£ã³ã°ãã¹ãã«ããåºãæ žå¿ããžãã¯ãéè¡ã§ãããæãç°¡åã§å¹ççãªå¿
殺ã³ãŒãã説æããŸãã
ãåã£ãŠããã¯ããªã®ã«ããªãééã£ãŠãããã ããïŒããšãã£ããããããæ©ã¿ãå°ã£ãç¶æ³ã解決ããããã®ããŠããŠãè©°ã蟌ã¿ãŸããã
ãã以å€ã«ããC++ãç¥ããªããŠããã®ææ¬äžåã§C++ã«ããã¢ã«ãŽãªãºã ãã§ããããã«ãC++ã®åºç€ãšæ§ã
ãªã³ãŒãã£ã³ã°ãã¹ãã®ããŠããŠãåçž®ãã200ããŒãžã®ææ¬ããã¬ãŒã³ãããŸãã
èš 440ããŒãžã®ææ¬ã§
C++ããã¢ã«ãŽãªãºã ã®æŠå¿µãŸã§å®ç§ã«
ã¢ã«ãŽãªãºã æŠå¿µææ¬ãC++ææ¬ãè§£èª¬ææ¬ãåãããŠãèš440ããŒãžã®PDFãã¡ã€ã«ãæäŸããŸãããããéããŠãæ¬åœã«å®ç§ã«ã¢ã«ãŽãªãºã ãåŠã¶ããšãã§ããŸãã
BOJäžäœ0.1%ã®
æé«æ°Žæºã®è§£èª¬ã³ãŒããæäŸããŸãã
ååé¡ã«ã¯æ§ã
ãªçããããããããŠæåã®è§£çãšãããã®ãååšããŸããç§ã¯ãããè¯ãã³ãŒããšã¯äœãïŒããçµ¶ããæ©ã¿ç¶ããªããã解説ã³ãŒããæ§ç¯ããŠããŸããã
* 1911çªã®åé¡ã®å Žåããã®åé¡ãè§£ããå
šã³ãŒãã®äžã§ã³ãŒãã©ã³ãã³ã°6äœãéæããæ§å
ãã以äžãè¯ãã³ãŒããçè§£ã§ããã³ãŒããæ¢ãããã«ã€ã³ã¿ãŒããããæ€çŽ¢ããŠæéãç¡é§ã«ããå¿
èŠã¯ãããŸããããã ããã®è¬çŸ©ã®ã解説ã³ãŒããã ããå匷ããã°ããã®ã§ããåè¬çã®ããã«æé«å質ã®ã³ãŒããæºåããããã«ç£šãäžããŸããã
åé¡ãè§£ã芳ç¹ããæãã
3幎ã®ç¹çŽããŠããŠãäŒæããŸãã
ãã ããã®ã³ãŒãã ãããã®åé¡ãè§£ããã®ã§ã¯ãªããã©ã®ãããªèгç¹ããããããã¯ã©ã®ãããªã¢ã€ãã¢ãããã®åé¡ããã®ããã«è§£ãã¹ãããªã©ã3幎éåŠçãæããŠããäžã§å®æãããããŠããŠãäŒæããŸãã
* BOJ 3986 è¯ãåèª åé¡ã®è§£èª¬
ãã®åé¡ã¯åã«ã¹ã¿ãã¯ãå©çšããŠè§£ãåé¡ã§ãããã§ã¯ãªãã¹ã¿ãã¯ãèããã¹ããªã®ããã©ã®ããã«ã¹ã¿ãã¯ã䜿ãããšãæãã€ãã¹ããªã®ããªã©ãã©ã®ãããªã¢ãããŒãã§ã©ã®ããã«ã¢ã€ãã¢ãå°ãåºãã¹ãããè©³çŽ°ã«æããŸããçµæè«ãšããŠåºãŠããã³ãŒãã§ã¯ãªããåé¡ãè§£ãéçšã«éäžãããã"åé¡ãè§£ãæèã®æµã"ãæŽããŠãããŸãã
ã³ãŒãã£ã³ã°ãã¹ãã ãã§ãªã
å
šè¬çãªããŒã¿æ§é ãŸã§åŠã¶ããšãã§ããŸãã
ãã®è¬çŸ©ã¯ãã³ãŒãã£ã³ã°ãã¹ãã®ããã®ã¢ã«ãŽãªãºã èœåã身ã«ã€ããã ãã§ãªããå
šè¬çãªããŒã¿æ§é ããã£ãããšåŠã¹ãè¬çŸ©ã§ãããã®è¬çŸ©ã§ã¯ãvectorãarrayãmapãunordered_mapãsetãmultisetãstackãqueueãªã©ãå
šè¬çãªããŒã¿æ§é ãåŠã¶ããšãã§ããŸãã
JavaãJavaScriptã®èšèªã§
å¶éãããã£ãŠããã³ãŒãã£ã³ã°ãã¹ããŸã§å®ç§ã«ã
ããŸã«ã³ãŒãã£ã³ã°ãã¹ãã§ãJavaãJavaScriptãšããèšèªã®ã¿ã§åéšããªããã°ãªããªãå ŽåããããŸãããã®ãããªç¶æ³ã«åããŠãC++ã§åŠãã å
容ãããšã«ä»ã®èšèªã«å€æããéã®æ³šæäºé
ããç¹ã«JavaãšJavaScriptã§éç¹çã«åŠç¿ãã¹ãæ žå¿ããžãã¯ã説æããåç»ãŸã§çšæããŠãããŸããã
https://youtu.be/-zGFtwIiJ4s
160åãã³ãŒãã£ã³ã°ãã¹ãã«ãŸãã«å¿
èŠãª
åé¡ãšè§£èª¬è¬çŸ©ãæäŸããŸãã
äžã®äžã«ã¯æ¬åœã«å€ãã®åé¡ããããŸããäŸãã°å®è£
ã«ã¯ããããæé€æ©ãªã©ä»£è¡šçãªåé¡ããããŸããç§ã¯3幎éãåŠçãã¡ãçŽæ¥æããªããã©ã®ãããªåé¡ãã©ã®ãããªé åºã§ã©ããããè§£ãã°ã³ãŒãã£ã³ã°ãã¹ãã«åæ Œã§ããã®ãå®éšã«å®éšãéããŸããããã®çµæãå³éžãã160åãçããã«å
¬éããŸãã
äžã®äžã«ã¯ç°¡åãªåé¡ããããŠå°æ°ã®åé¡ãè§£ãè¬çŸ©ãå€ãã§ããããããç°¡åãªåé¡ãå°æ°ã®åé¡ãè§£ãã ãã§ã¯ã決ããŠã³ãŒãã£ã³ã°ãã¹ãã«åæ Œããããšã¯ã§ããŸããããã®è¬çŸ©ã¯3幎ã«ããã£ãŠæ€èšŒãããã«ãªãã¥ã©ã ã«åºã¥ããéåœã§å¯äžç¡äºã®ããªããš160åãã®åé¡ãè§£ãè¬çŸ©ã§ãããã ãã®è¬çŸ©ã§åºãããåé¡ããè§£ãã°ã³ãŒãã£ã³ã°ãã¹ãã«åæ Œã§ãããããæ©ã¿æããç§ã®æéã蟌ããããè¬çŸ©ã§ãã
ãã以äžãééã£ãæ¹æ³ã§ã¢ã«ãŽãªãºã ãå匷ããªãã§ã»ãããšæããŸãã
ããè¯ãã³ãŒããçŽåŸã§ããã³ãŒããæ¢ããŠãããã圷埚ããªããå匷ããããšã¯ããããã以äžãªãããã«ããŠããã ãããã§ãã
çããã®æéãç¡é§ã«ããã
ãã®è¬çŸ©äžã€ã§ãã³ãŒãã£ã³ã°ãã¹ãããçµããããŠããã ããããšæããŸãã
ã«ãªãã¥ã©ã ã
確èªããŠã¿ãŠãã ããã ð
ãŸããC++ã¢ã«ãŽãªãºã ææ¬ãå®å
šã«åŠç¿ãã ïŒ æŠå¿µè¬çŸ© ïŒ èªåã§åé¡ãè§£ã ïŒ è©²åœã®åé¡è§£èª¬è¬çŸ©ãèŽããªããåŠç¿ãé²ããŠãã ãããå®è£
ãDFSãBFSãããªãŒå·¡åãå®å
šæ¢çŽ¢ãããã¯ãã©ããã³ã°ãããããã¹ãã³ã°ãªã©ãã³ãŒãã£ã³ã°ãã¹ãã«ããåºé¡ãããæŠå¿µãäžå¿ã«åŠç¿ããåé±ããšã®æšå¥šåé¡ïŒèš160åïŒãæäŸãããŸãã
èšç®éãååž°é¢æ°ã
环ç©åãå®è£
ã°ã©ãçè«ãDFSãBFSã
ããªãŒå·¡å
å®å
šæ¢çŽ¢ãããã¯ãã©ããã³ã°
ããããã¹ãã³ã°
匷欲æ³ïŒã°ãªãŒãã£ïŒãã©ã€ã³ã¹ã€ãŒãã³ã°ã
2ã€ã®ãã€ã³ã¿ïŒãã¥ãŒãã€ã³ã¿ïŒ
äºåæ¢çŽ¢ãš
LIS (æé·å¢å éšåå)
DP (åçèšç»æ³)
ãã§ããã¯æšãš
æççµè·¯ã¢ã«ãŽãªãºã
ã³ãŒãæºåå®äºïŒ
ãã®è¬çŸ©ã¯
äœãéãã®ã§ããããïŒ ð
â
ã³ãŒãã£ã³ã°ãã¹ãåæ Œã®ããã«å³éžãã160åã®æšèŠåé¡
â
160åã®BOJïŒBaekjoon Online JudgeïŒåé¡è§£èª¬è¬çŸ©
â
ã¢ã«ãŽãªãºã äžäœ0.1%ã®è¬åž«ãæäŸããæé«æ°Žæºã®è§£èª¬ã³ãŒã
â
8é±éã§çµãããã ã³ãŒãã£ã³ã°ãã¹ã å¿
é æŠå¿µè¬çŸ©
â
C++ãç¥ããªããŠã倧äžå€«ïŒ 200ããŒãžã®ã¢ã«ãŽãªãºã çšC++ååææãæäŸïŒ
- ã³ãŒãã£ã³ã°ãã¹ãåæ Œã«å¿
èŠãªãã¹ãŠã®ç¥èãåŠã¶ããšãã§ãã
- éåœæé«ã®ã³ãŒãã£ã³ã°ãã¹ãè¬çŸ©
- ä»ãå§ãŸããŸãã
å¹³åè©äŸ¡ 5.0!
æé«ã®è¬çŸ©ã§ããããšãèªè² ããŸãã ð¥
https://inf.run/Dj2Uh
ç§ã¯ç¶ç¶çã«ã¢ããããŒããããè¬çŸ©ãããæé«ã®è¬çŸ©ã§ãããšèããŠããŸããããã蚌æãããã®ããã«ã2022幎ã«ã¯ã€ã³ãã©ã³å
ã®å
šè¬çŸ©ã®äžã§æãå€ãã®ã¢ããããŒããè¡ã£ãè¬çŸ©ã«éžã°ããŸãããåžžã«åè¬çã®ãã£ãŒãããã¯ãªã©æ¹åãã¹ãç¹ãè¿
éã«åæ ããæé«ã®è¬çŸ©ãæäŸã§ããããåªããŠãŸãããŸãã
ç§ã®è¬çŸ©ã¯ãåè¬çãããªãééã£ãŠããã®ãããšãã質åãããéã«ãè¿
éãã€èª å¿èª æãçãããããšã§æåãªè¬çŸ©ã§ããããŸãããããè£ä»ããããã«ã2024幎ã®Inflearnã¢ã¯ãŒãã§ã¯ãä»å¹Žæãå€ãã®åçãæ®ããç¥èå
±æè
ã«éžå®ãããŸãããåžžã«åè¬çã®è³ªåã«å¯ŸããŠæé«ã®åçãã§ããããåªããŠãŸãããŸãã :)
4æ28æ¥ BaekjoonãµãŒãã¹çµäºã«é¢ãã察å¿ã®ãç¥ãã
ããã«ã¡ã¯ãè¬åž«ã®ã¯ã³ãã«ã§ããBOJïŒBaekjoon Online JudgeïŒã®ãµãŒãã¹çµäºåŸããæ¯éãªãç§ã®è¬çŸ©ãåè¬ããŠããã ãããããåè¬çã®æ¹ã
ã ããå©çšã§ãã"ã³ãŒãã£ã³ã°ãµã«ã°ã¯ã©ã"ãäœããŸããã
ã³ãŒãã£ã³ã°ãµã«ã°ã¯ã©ãã®æ§å
鱿¬¡å¥ã®å顿Œç¿ã¯ãã¡ãããå®éã® å€§äŒæ¥ã®ã³ãŒãã£ã³ã°ãã¹ãã®å€åœ¢æ¢åºåé¡ãŸã§è§£ãããšãã§ããŸãã :)
æ£è§£ãããšå¯æãã¢ãã¡ãŒã·ã§ã³ãŸã§ ^_^
ãããã質åã
確èªããŠã¿ãŠãã ããã ð¬
Q. ç§ãå¿æããäŒæ¥ã®ã³ãŒãã£ã³ã°ãã¹ãã®èšèªãC++ã§ã¯ãªãã®ã§ããã倧äžå€«ã§ããããïŒ
ã¯ãã倧äžå€«ã§ãããã®è¬çŸ©ã§å匷ããŠãJavaãJavaScriptãªã©ã«ç§»æ€ããŠã³ãŒãã£ã³ã°ãã¹ããåããåæ Œããåè¬çãããããèŠãŠããŸãããå®éãä»ã®èšèªã«å€æããããšã¯ããã»ã©é£ãããããŸãããäŸãã°ãC++ã§vectorã«èŠçŽ ã远å ããã«ã¯push_back()ãšãã颿°ã䜿ããŸãããïŒJavaã§ã¯append()ããJavaScriptã§ã¯push()ã䜿ããŸãããã®ãããªäºçްãªéããããªããããã¢ã«ãŽãªãºã ãåŠã³ãããèšèªã§ããC++ã§ããããŠãã®è¬çŸ©ã§å匷ããåŸãããã³ãŒãã£ã³ã°ãã¹ãã§ä»ã®èšèªã䜿ããªããã°ãªããªãå Žåã¯ããã®èšèªã«ç§»æ€ããŠåããããšãããããããŸãã
ã³ãŒãã£ã³ã°ãã¹ããåããåã«ãã®éšåã®ç·Žç¿ãå¿
èŠã§ãããããã»ã©æéã¯ããããŸãããC++ã§åŠãã åŸããããã¹ãã§Javaã䜿ããªããã°ãªããªããšãªã£ãå Žåããã®éšåãç·Žç¿ããã®ã«åè¬çã®å¹³ååºæºã§éåžž1æ¥ããã°æºåãå®äºããŠããããã§ãã
ã¡ãªã¿ã«ã該åœéšåã«åããããã®åç»ãçšæããŠãããŸãããã²åèã«ããŠãã ããã :)
https://youtu.be/-zGFtwIiJ4s
Q. ã³ãŒãã£ã³ã°ãã¹ãã§ã¯ãªããã¢ã«ãŽãªãºã ãå匷ããç®çã§ãã®è¬çŸ©ãåè¬ããŠã倧äžå€«ã§ããããïŒ
ã¯ãã倧äžå€«ã§ããå®éãæ€çŽ¢ããŒã¯ãŒãã®ããã«ãã®è¬çŸ©ã®ã¿ã€ãã«ã¯ã10é±å®æ C++ã³ãŒãã£ã³ã°ãã¹ãããšãªã£ãŠããŸãããã10é±å®æ C++ã¢ã«ãŽãªãºã ããšããŠãå·®ãæ¯ããããŸãããéåžžã«å€ãã®åé¡ïŒ160åïŒã解説ããªããã¢ã«ãŽãªãºã å
šè¬ã®æŠå¿µãæ±ã£ãŠãããåé¡ã®é£æåºŠãæé«ã§ãã©ãããŸã§é£ããåé¡ãæ±ããããã¢ã«ãŽãªãºã å
šè¬ã®å
容ãå匷ããã®ã«åœ¹ç«ã€ã¯ãã§ãã
Q. éå°éå®¶ïŒéå°æ»è
ïŒã§ãã倧äžå€«ã§ããããïŒ
ã¯ãã倧äžå€«ã§ãããã ããå¿
ãããã°ã©ãã³ã°ãã§ããå¿
èŠãããã1ã€ä»¥äžã®èšèªãããŒã¹ã«ããžãã¯ãå®è£
ã§ããã®ã§ããã°åé¡ãããŸããã
Q. ããã§æäŸãããåé¡ã ããè§£ããŠãã³ãŒãã£ã³ã°ãã¹ãã«åæ Œã§ããã§ããããïŒ
ã¯ããã»ãšãã©ã®äŒæ¥ã®ã³ãŒãã£ã³ã°ãã¹ãã«ã¯å¿
ãåæ Œã§ãããšèªè² ããŠããŸããããã¯ãã¢ã«ãŽãªãºã ãå
šãç¥ããªãã£ãåŠçããã®ã«ãªãã¥ã©ã ã ãã§ãã€ããŒãã«ã«ãªããµã ã¹ã³ãªã©ã®äŒæ¥ã³ãŒãã£ã³ã°ãã¹ãã«åæ ŒãããçµéšããããããæèšããŠãäŒãããŸãã
Q. åé¡ãè§£ããåŸã§ããè¬çŸ©ãè§£çãèŠãã¹ãã§ããïŒ
ã¯ããããã§ããäŸãã°ãåè¬çã®ã³ãŒãã10è¡ãªã®ã«ç§ã®äœã£ãè§£çã1è¡ã§ããã°ãç§ã®è§£çãæžãåãã¹ãã§ããããè¯ãã³ãŒããæžãããã«ãç§ã®ã³ãŒããèŠãªããããäžåºŠåŸ©ç¿ããéçšãå¿
èŠã§ãã
Q. 質åãããäœæ¥ä»¥å
ã«åçããã ããŸããïŒ
æ©ããã°1æé以å
ã«åçãåãåãããšãã§ããŸãããéåžžã¯1ã3æ¥ä»¥å
ãšãèããã ãããïŒé±æ«ããã³ç¥æ¥ãé€ãïŒ