See Also [프로그래ë°/Score] == ì ‘ê·¼ë²• == 1줄로 í‘œí˜„í• ë°©ë²•ì„ ì´ë¦¬ì €ë¦¬ ê³ ë¯¼. == 1ì°¨ ë²„ì „ == {{{~cpp def toInt(aList): return [{'O':1,'X':0}[v] for v in aList] def ox(aList): for idx in range(1,len(aList)): aList[idx]=aList[idx]*(aList[idx-1]+1) return sum(aList) }}} == 2ì°¨ ë²„ì „ == input ì— ëŒ€í•´ì„œ 여러 방법으로 ë³€í˜•ì„ ì‹œë„. ê·¸ 중 ì¢‹ì€ ì•„ì´ë””ì–´ê°€ ë– ì˜¤ë¦„. ê° sub ë‹¨ìœ„ì˜ "O" ì˜ ê°¯ìˆ˜ë¥¼ ì„¸ê³ ì´ì— 대해 ê° ë¶€ë¶„ë³„ë¡œ f(n) = f(n-1)+1 ì— ëŒ€í•œ ì´í•© ê³„ì‚°ì„ í•´ì£¼ë©´ ë˜ê² 다 ìƒê°. f(n) ì— ëŒ€í•´ì„œ sum(f(n)) = n(n+1)/2 ì´ë¯€ë¡œ, ì´ë¥¼ ì´ìš©í•˜ë©´ ë˜ë¦¬ë¼ ìƒê°ì´ 듬. ê²°êµ í•´ê²°. {{{~cpp def ox(aList): return sum((len(e)*(len(e)+1))/2 for e in aList.split("X") if e!='') for each in ['OOXXOXXOOO','OOXXOOXXOO', 'OXOXOXOXOXOXOX', 'OOOOOOOOOO','OOOOXOOOOXOOOOX']: print ox(each) }}} ---- 위ì—서 ì›ì†Œê°€ ì—†ì„ ë•Œ if e!=''로 처리하는ë°, 없으면 len(e)ê°€ 0ì´ ë˜ë¯€ë¡œ 그냥 ì¼ë°˜í™”í•´ë„ ë 것ì´ë‹¤. 즉 "있다"와 "없다"를 ì¼ë°˜í™”. J언어로 해봤다. {{{ [:+/[:-:@(#*1+#);._1 'X',] }}} --JuNe