(Image by neo tam from Pixabay)
æè¿ãããªè¨äºãåºã¦ããããã§ãããåã«ã¨ã£ã¦ã¯æ¢è¦ææºè¼ã®è©±é¡ã§ãããä½æ ãã¨ããã¨ãå®ã¯ç¾è·ã«æ¥ã以åã«æ¢ã«ããã§æ¸ããã¦ããé¢æ¥æ¹æ³ãå®åæ å½è é¢æ¥ã®è²¬ä»»è ã¨ãã¦å®è·µãã¦ããããã§ããã¡ãªã¿ã«ãã®æ¹æ³ã¯2013å¹´ãããå½æã®ããã¯ç³»ã¡ãã£ã¢ã§è¨äºã¨ãã¦åãä¸ãããã¦ãããã®ãªã®ã§ãããæ®å¿µãªãã¨ã«ç¾å¨ã©ãã»ã©æ¤ç´¢ãã¦ããã®è¨äºãè¦ã¤ããã¾ããâ¦â¦ã
ãã®å
容èªä½ã¯ãã°ããåã«è±èªçQuoraã«æ¸ãã¦ããã*1ãã£ã¨é¡ãã°Twitterã«æ¸ããããã¦ããã®ã§ãããããè¨ãã°ããã°ã«ã¯æ¸ãã¦ããªãã£ããªã¨æãåºããã®ã§ãæ¹ãã¦ããã°è¨äºã«ãã¦ã¿ããã¨æãã¾ãããªããããã«æ¸ããã¦ããå
容ã¯åã®ç¾å¨ã®è·åã¨ã¯ä¸åé¢ä¿ããªããã¨ãäºããæããã¦ããã¾ãã
- ãã¼ã¿ãµã¤ã¨ã³ãã£ã¹ãã«å¿ è¦ãªã®ã¯ã解決ããåãã§ãã£ã¦ãç¬çºåãã§ã¯ãªã
- ããç¾å®ã®ã·ã¼ã³ã«å³ããã·ãã¥ã¨ã¼ã·ã§ã³ã§ã®å®åãè¦ã
- æå¾ã«
ãã¼ã¿ãµã¤ã¨ã³ãã£ã¹ãã«å¿ è¦ãªã®ã¯ã解決ããåãã§ãã£ã¦ãç¬çºåãã§ã¯ãªã
åé ã®è¨äºã§ãæ¸ããã¦ããããã«ãä¸è¬ã«ãã¼ã¿ãµã¤ã¨ã³ãã£ã¹ãã®æ¡ç¨é¸èã¯ã½ããã¦ã§ã¢ã¨ã³ã¸ãã¢ã®ããã«æºããæ¹æ³ãåã£ã¦ããã¨ãããï¼ç¹ã«USã§ã¯ï¼å¤ãã§ããããããã¨ãã©ãããé¢æ¥ã«ãªããã¨ããã¨
- ãã¯ã¤ããã¼ãã³ã¼ãã£ã³ã°
- çµ±è¨å¦ãæ©æ¢°å¦ç¿ã®ç¥èãè¦æ±ãããé è³ã¯ã¤ãº
ã¨ãã£ããã¨ãèããã®ã«ãªããã¡ã§ããã©ã¡ããtechç³»æåä¼æ¥å社ã§ã¯è¯ãç¨ããããæåãªé¢æ¥ã¹ã¿ã¤ã«ã§ãããä¸å¿ä»¥ä¸ã«èª¬æãä»ãã¦ããã¾ãã
ä¸ã¤ç®ã¯èªãã§åã®å¦ããé¢æ¥æ å½è ããããããå®ç¾ããã³ã¼ããæ¸ããªãããã¨ãããé¡ã ããä¸ãããã¦ãã°ã°ã£ããä½ãè³æãåç §ãããã¨ãªãããã®å ´ã§èªåã®ç¥èã¨æè¡ã ããé ¼ãã«ãã¯ã¤ããã¼ãã«åçã®ã³ã¼ããæã§æ¸ãã¦ãããªããã°ãªããªã*2ã¨ããã¹ã¿ã¤ã«ã®é¢æ¥æ¹æ³ã§ããã½ããã¦ã§ã¢ã¨ã³ã¸ãã¢ã ã¨å¹³è¡¡äºåæ¢ç´¢æ¨ã®å®è£ ã³ã¼ããæ¸ãããããªã©ã®ãå®çªåé¡ãæåã§ããããªãLeetCodeãªã©ã«techç³»æåä¼æ¥å社ã®åé¡ãåé²ããã¦ãã¦ããããã²ããã解ãã¦è¦ããã¨ããã®ãããã¾ãå®çªã®é¢æ¥å¯¾çã§ãããã¼ã¿ãµã¤ã¨ã³ãã£ã¹ããæ©æ¢°å¦ç¿ã¨ã³ã¸ãã¢ã®é¢æ¥ã ã¨ãä½ãã®ãã¼ã¿ã¨èª²é¡ã®ã³ã³ã»ãããä¸ããããä¸ã§*3ãæä¸ã®èª²é¡ã解決ããããã®ã³ã¼ããPythonãRã§ãã¯ã¤ããã¼ãã«æ¸ãã¨ããã¹ã¿ã¤ã«ãåããã¨ãå¤ãããã§ãã
äºã¤ç®ã¯ä¼æ¥ã«ãã£ã¦ã¹ã¿ã¤ã«ã¯ã¾ã¡ã¾ã¡ãªããã§ãããã½ããã¦ã§ã¢ã¨ã³ã¸ãã¢æ¡ç¨é¢æ¥ã«æºããã¹ã¿ã¤ã«ã ã¨çµæ§é è³ããºã«ã¿ãããªåé¡ãå£é ã§åºããã¦ãé¢æ¥æ å½è ãç´å¾ãããããªåçãï¼å½ç¶ã°ã°ã£ããä½ãè³æãåç §ãããã¨ãªãï¼è¿ããªããã°ãããªãã£ãããã¾ããä¾ãã°ãããé¨å±ã«äºé ¸åçç´ æ¿åº¦è¨ã10åä»ãã¦ãã¦ããããããã©ãã©ã®å¤ã示ãã¦ãã¾ãããã®é¨å±ã®æ£ç¢ºãªäºé ¸åçç´ æ¿åº¦ãæ±ããæ¹æ³ãèããªãããã¿ãããªåé¡ã§ãããããã解ããã¨ã«ãã£ã¦ãåè£è ã¯èªåã®çµ±è¨å¦ãæ©æ¢°å¦ç¿ã®ç¥èãããã«ç¢ºããªãã®ã§ããããã¢ãã¼ã«ããã¨ããããã§ãã
ã¨ããããããã¾ã§èªãã°å¤§åã®æ¹ã ã«ã¯ãåãããã¨æãã¾ããããããã®é¢æ¥æ¹æ³ã§æ¸¬ããã®ã¯ã©ã¡ããã¨ããã¨ãç¬çºåãã§ãã確ãã«ãã½ããã¦ã§ã¢ã¨ã³ã¸ãã¢ã§ããã°ãã¡ãã¡ã°ã°ã£ããè³æãåç §ããåã«ãã£ãã¨è¿ éã«ç®ã®åã®èª²é¡ã解決ããã³ã¼ããæ¸ããæ¹ãè¯ãã®ã¯äºå®ã§ããããããã£ãç¬çºåãåãããã®ã¯èªç¶ãªãã¨ã ã¨ã¯æãã¾ãã
ããããªããããã¼ã¿ãµã¤ã¨ã³ãã£ã¹ããæ©æ¢°å¦ç¿ã¨ã³ã¸ãã¢ã§ãç¹ã«ã·ã¹ãã ã»ã½ããã¦ã§ã¢éçºãç´æ¥æ å½ãã¦ããªãå ´åãããã®æ¥ã®ãã¡ã«è¿ éã«ãã¨ãããããªç¬çºåãè¦ããã¢ããã¼ããæ±ãããããã¨ã¯å°ãªãã¯ãã§ããæ®éã¯ãã¼ã¿ã®åéæ¹æ³ãå¾ããããã¼ã¿ã®æ¦è¦ãç´°ããæ§è³ªãããã«ã¯ç¨ããå¯è½æ§ã®ããã¢ããªã³ã°ææ³ã®ç¹å¾´ãç¸æ§ãªã©ãåå³ããªãããçãã¨ã1-2é±éãããã¯ããã¦PoCã»ãããã¿ã¤ããå®è£ ãæ¤è¨¼ãã¦ããã¨ããæµããåããã®ã ã¨ããã®ããåã®æ¥ççµé¨ã«åºã¥ãç解ã§ãã
ããããè¤éãªçµ±è¨ã¢ãã«ãæ©æ¢°å¦ç¿ææ³ã®è©³ç´°ãªã©åãããªããã¨ãããã°ãã°ã°ã£ããè³æãåç §ãã¦æ£ç¢ºãªç¥èãå¾ãä¸ã§ãã³ã¼ãå®è£ ãªãæ¤è¨¼ãªããè¡ãã®ãå½ããåã§ããããã¾ããè¦ç¥ãã¬é¨å±ã«äºãè¨ç½®ãããç´ æ§ä¸æã®äºé ¸åçç´ æ¿åº¦è¨10åããå¾ããããã¼ã¿ãªãã¦ä¿¡ç¨ãããããããã®ãã¼ã¿åéæ¹æ³ããèãç´ãã®ãæ®éã ã¨æãã¾ããéç¾å®çãªã·ãã¥ã¨ã¼ã·ã§ã³ã®ãã¨ã§ã®ãç¬çºåãã試ããã¨ã«ã©ãã»ã©æå³ãããã®ããåã«ã¯åããããã¾ãã
ããããæéãæããã§ãä¸ç¥ãã¦åããç¯å²ã®åå¾æ¸ã¿ãã¼ã¿ã«å½ã¦ã¯ã¾ããããªçµ±è¨ã»æ©æ¢°å¦ç¿ã¢ãã«ãæ£æçã«é¸ãã§å®è£ ï¼æå ¥ãªãã¦ããããã®ãªãããã¿ã©ã¡ãªçµæã«ãªã£ãæå¥ã¬ã¹ãã¥ã¼ï¼ãµã«ãã¼ã¸ã«ãè«å¤§ãªæéãããã£ã¦ãã¾ãã¨ããã®ã¯ããã¼ã¿åææ¥çã§ã¯å ¸åçãªãããããã¿ã¼ã³ã§ããæéãé¿ãã¤ã¤é©åãªã¿ã¤ã ã¹ã±ã¸ã¥ã¼ã«ã®ãã¨ã§ããç¨åº¦ä»¥ä¸ã®ã¯ãªãªãã£ã確ä¿ããªããã解決ããåãããããç¾å ´ã®ãã¼ã¿ãµã¤ã¨ã³ãã£ã¹ããæ©æ¢°å¦ç¿ã¨ã³ã¸ãã¢ã«æ±ããããç´ é¤ã§ãããã
- å®éã®ä»äºã§ããã¯ã¤ããã¼ãä¸ã«ã³ã¼ããæ¸ãããã誰ããè©è¶ãã«è¦ãã¦ããç¶æ ã§æç®ãå®è¡ãããããã¨ãã£ããã¨ã¯ããå¾ãªããæ¥åä¸ã«ã¤ã³ã¿ã¼ãããã¢ã¯ã»ã¹ãç¦æ¢ããããªã©ç解ãããã
- å®ä¸çã§ã¯ãããããã¢ã«ã´ãªãºã ãæã§æ¸ããã¨ã¯çµ¶å¯¾ã«ãªããï¼é常ã¯ã¤ã³ã¿ã¼ãããä¸ã§å ¥æå¯è½ãªç¡åã®ã½ãªã¥ã¼ã·ã§ã³ã使ãï¼ãä»äºã§ééããåé¡ã«ããºã«ã®ãããªããªããã¼ãªãã®ã¯æ» å¤ã«ãªã
ã¨åé ã®è¨äºã§ã¯ææãã¦ãã¾ãããå
¨ããã£ã¦åæè¦ã§ããä¸èª¬ã§ã¯ããããããç¬çºåããããã¦åããã¨ã§ç¥è½ææ°ãé«ãæ½å¨è½åã«æå¾
ã§ãã人æãé¸å¥ããã¨ããçããããã®ã ããã§ãããã½ããã¦ã§ã¢ã¨ã³ã¸ãã¢ãªãã¨ããããã¼ã¿ãµã¤ã¨ã³ãã£ã¹ããæ©æ¢°å¦ç¿ã¨ã³ã¸ãã¢ã«ãã®ãããªé¸èããããã¨ã«ã©ãã»ã©ã®æå³ããããã®ãã¯ã大ãã«çå符ãã¤ãã¨æã£ã¦ãã¾ãã
ããç¾å®ã®ã·ã¼ã³ã«å³ããã·ãã¥ã¨ã¼ã·ã§ã³ã§ã®å®åãè¦ã
ã§ã¯ãã©ããããã解決ããåããè©ä¾¡ã§ããã§ããããï¼ãããã«ã¤ãã¦åãQuoraã§æ¸ããã®ãã以ä¸ã®é¸èæ¹æ³ã§ãã
- åè£è ã«äºåã«è§£ãã¹ããã¼ã¿ã»ããã¨ãã¼ã¿ãµã¤ã¨ã³ã¹çãªèª²é¡ãéããé¢æ¥å½æ¥ã¾ã§ã«1â2é±éããã¦ããã解ãã¦ããã
- å®éã®é¢æ¥ã®éã¯ãåè£è ã«èªèº«ã®ã½ãªã¥ã¼ã·ã§ã³ãæ§ç¯ããéç¨ã¨ããã®ã½ãªã¥ã¼ã·ã§ã³ã®ãã¼ã¿ã»ããã«å¯¾ããããã©ã¼ãã³ã¹ï¼äºæ¸¬æ§è½ãªã©ï¼ãå¾ãããç¥è¦ãªã©ã示ãã¦ããã
ã¾ãããã¼ã¿ãµã¤ã¨ã³ãã£ã¹ãoræ©æ¢°å¦ç¿ã¨ã³ã¸ãã¢ã®åè£è ãå®åæ å½è é¢æ¥ã¾ã§é²ãã§ããæç¹ã§ãæ¡ç¨æ å½ã«ä¾é ¼ãã¦åè£è ã«äºåã«ãã¼ã¿ã»ããã¨ããã«ä»éãããã¼ã¿ãµã¤ã¨ã³ã¹èª²é¡ãéãã¾ãããã®ä¸ã§æ¡ç¨æ å½ã¨èª¿æ´ãã¦ã大ä½1-2é±éå¾ã«é¢æ¥ãããããªã¹ã±ã¸ã¥ã¼ã«ãè¨å®ããåè£è ã«é¢æ¥å½æ¥ã¾ã§ã«åãçµãã§ãããã¾ãããã®ä¸ã§ãé¢æ¥å½æ¥ã¯åè£è ã«ãã®ãã¼ã¿ãµã¤ã¨ã³ã¹èª²é¡ã解ãä¸ã§æ§ç¯ããã½ãªã¥ã¼ã·ã§ã³ãå®è£ ããã³ã¼ãé¡ãè¦ãã¦ããããªãã説æãæ±ããããã«ã¯ãã¡ãã®æå ã«ç½®ãã¦ãããæ£çï¼ãã¹ãï¼ãã¼ã¿ã»ããã¨ç §åãã¦åè£è ã®ã½ãªã¥ã¼ã·ã§ã³ã®ããã©ã¼ãã³ã¹ã®è¯ãæªããè©ä¾¡ãããã¨ãããã®ã§ããå©ãã¦è¨ãã°ãèªç¤¾çããKaggleã³ã³ãããéå¬ãããããªãã®ã§ããã
ãã®ããæ¹ãªãããããã1-2é±éã¨ããä¸è¬çãªãã¼ã¿åæããã¸ã§ã¯ãã®ã¿ã¤ã ã¹ã±ã¸ã¥ã¼ã«ã«å³ããå½¢ã§ãåè£è ãã©ããããã®ããã©ã¼ãã³ã¹ãåºããããè¦ããã¨ãã§ãã¾ããããããåè£è ã¯èªå® å«ãããã¼ã ãã®ç°å¢ã§èª²é¡ã«åãçµããããã§ãå½ç¶ã°ã°ã£ã¦è³æãæ¢ãã¦ãè¯ããææã¡ã®è³æãåç §ãããã¨ãã§ãã¾ããããã«ãã£ã¦ç´ç²ã«ãç¾å®ã®è·åç°å¢ã§ãã¼ã¿åæã«åãçµãã ãå ´åã¨åãã·ãã¥ã¨ã¼ã·ã§ã³ã§åè£è ãã©ã®ããã«èª²é¡ã解決ãã¦ã¿ããããè©ä¾¡ã§ããã¨ããããã§ãã
åé ã§ã触ããéããåã¯ãã®ãã¼ã¿ãµã¤ã¨ã³ãã£ã¹ãé¸èæ¹æ³ãåè·æ代ã«å®éã«åãå ¥ãã¦å®è·µãã¦ãã¾ãããå½æã¯ãçµ±è¨ã¢ããªã³ã°èª²é¡ãã¨ãã¦ãã¼ã±ãã£ã³ã°åæãæ±ãã課é¡ã¨ããæ©æ¢°å¦ç¿èª²é¡ãã¨ãã¦å¤§è¦æ¨¡ãã¼ã¿ã¸ã®æ©æ¢°å¦ç¿ã¢ãã«æ§ç¯ï¼äºæ¸¬ãæ±ãã課é¡ã®2種é¡ãç¨æãã¦ãåè£è ã«å¥½ããªæ¹ãé¸ãã§åãçµãã§ãããã¨ããæ¹å¼ãåã£ã¦ãã¾ããã
ãããå®ã«å¹æ覿é¢ã§ãçµ±è¨å¦ãæ©æ¢°å¦ç¿ã®ç¥èãä¸å®å ¨ãªäººã ã¨æ¬å½ã«ããããããä½ã§ãããã¯åãã£ã¦ãã¾ãããããã¨ããåçãæã£ã¦ããã®ã§ãé¢æ¥å½æ¥ã¯ãã®åçããå¾ãããå°è±¡ãå¼·ã¾ããéã«ææãããããå£é ã§ã®é¢æ¥ãéãã¦æ¢ãã°è¯ãã ãã§ããããã£ã¨ã大åã¯æªãå°è±¡ãå¼·ã¾ãã ãã§çµããã¾ãããâ¦â¦ãä¸æ¹ã§ãåªããåçï¼ãã¹ããã¼ã¿ã¸ã®ããã©ã¼ãã³ã¹ãæã£ã¦ãã人ã ã¨ãå£é ã§ã®é¢æ¥ãéãã¦ããã®äººã¯çµ±è¨å¦ãæ©æ¢°å¦ç¿ã«ãè¯ãéãã¦ãã¦åªç§ã ãã¨ããå°è±¡ãã©ãã©ãå¼·ã¾ã£ã¦ãããã¨ãå¤ããé¢æ¥ãã¦ãã¦ãé常ã«é¢ç½ãã£ãã§ãã
ãªããå½ææ©æ¢°å¦ç¿èª²é¡ã§æãåªããããã©ã¼ãã³ã¹ãå©ãåºããåè£è
ã®æ¹ã«ã¯å½ç¶ãªãã¡ã¼ãåºãããã§ãããé常ã«åªç§ãªæ¹ã ã£ãã®ã§ä»ã®ç«¶åä»ç¤¾ã«å¥½å¾
éã§æ»ã£æ«ããã¦ãã£ã¦ãã¾ãã¾ããã¨ãï¼ç¬ï¼ã
æå¾ã«
å¤åãªãã§ãããæ´ã®æ±è¥¿ãåããçµæ§ãªæ°ã®ä¼æ¥ãä»ã§ããæ¡ç¨é¢æ¥ã§ã¯ãé ã®è¯ããåè£è
ãæ¡ããããã¨èãã¦ããã®ã§ã¯ãªãããªã¨ãä»åã®ããã°è¨äºãã¾ã¨ãã¦ãã¦æ¹ãã¦æã£ã次第ã§ããå®éãå¤è³ã®ã³ã³ãµã«ãéèæ©é¢ãªã©ã§ã¯ãããããã§ã«ãæ¨å®ã®åé¡ãå£é ã§èª²ãã¨ãããå¤ãã¨èãã¾ãã*4ããã®çãã¯ãã¯ããé ã®è¯ããã¨ãã®ãç¬çºåãã測ãããããã¨ãããã¨ã®ããã§ãã
ããããªãããã½ããã¦ã§ã¢ã¨ã³ã¸ãã¢ãæ¦ç¥ã³ã³ãµã«ãªãã¨ããããçµ±è¨åæãæ©æ¢°å¦ç¿ãå®ç¤¾ä¼ã«é©ç¨ããå®åãã¼ã¿åæã®ä¸çã§å¿ è¦ãªè½åã¯ãé è³ããºã«ããã®å ´ã§ããããã¨è§£ãããããªç¬çºçãªãé ã®è¯ããã¨ã¯éããªã*5ãã¨éå»8å¹´ã®ãã¼ã¿åææ¥ççµé¨ããã¯æãã¦ãã¾ãããããã課é¡ã解決ããããã«å¿ è¦ãªãã¼ã¿ã»ç°å¢ã»ææ³ã»çµç¹ç®¡çã¨ãã£ãè¤éã«çµ¡ã¿åãææãã¡ããæéãé¿ãã¤ã¤é©åã«æ±ºããããã¿ã¤ã ã¹ã±ã¸ã¥ã¼ã«ã®ãã¨ã§çµã¿ä¸ãããããã°ãè«çæ§ãã¨ãçèã§ããåããããéè¦ãªã®ã§ã¯ãªãã§ããããã
ããããåã¯ç·ç§°ãã¦ã解決ããåãã¨å¼ãã§ã¿ãããã§ãããããããããããã¡ãã£ã¨è¯ãã¾ã¨ãæ¹ã»æ¬ãæ¹ãããããããã¾ãããããã«ã¤ãã¦ã¯ã¾ã稿ãæ¹ãã¦è«ãã¦ã¿ãããã¨æãã¾ãã
*1:èªåã§日本語版への翻訳記事ãæ¸ãã¦ãã¾ã
*2:ãªã¢ã¼ãã ã¨Google Docsãªã©ã®å ±æææ¸ã«ãã®å ´ã§typeãã¦ããã¿ãããªããæ¹ããã
*3:å ·ä½çã§ãªãé¨åã¯é¢æ¥æ å½è ã«ç´æ¥å£é ã§è¦ä»¶ãèãåºãã¦ãã£ã¦èªåã§ã¾ã¨ããã¨ããä½æ¥ãè¦ã
*4:å®ã¯5å¹´åã®è»¢è·æ´»åã§å¤è³ã®éèæ©é¢ãåããæã«ãã§ã«ãæ¨å®ãããããããã¨ããã
*5:ä¸è¦ã ã¨ã¯è¨ããªããéè¦ã ã¨ãæããªã