ìƒëŒ€ ì†ë„ 약 1.35. test2와 test3ì˜ ê°„ê²©ì´ ë„ˆë¬´ í¬ë‹¤. ìž‘ì„±í•˜ëŠ”ë° ì–¼ë§ˆë‚˜ 걸리는 지 ë˜ ì•ˆìž¬ì–´ë´¤ë‹¤. :( _signature를 그냥 쉘ì—ì„œ í•´ë´¤ì—ˆëŠ”ë° _signature를 테스트로 넣었어야 했다. {{{~cpp import unittest class Anagram: def __init__(self): self._anagrams = {} def add(self, word): s = self._signature(word) if self._anagrams.has_key(s): self._anagrams[s].append(word) else: self._anagrams[s] = [word] def anagrams(self): return self._anagrams.values() def _signature(self, word): s = list(word) s.sort() return "".join(s) class AnagramTestCase(unittest.TestCase): def test1(self): anagram = Anagram() anagram.add('abc') self.assert_(['abc'] in anagram.anagrams()) def test2(self): anagram = Anagram() anagram.add('abc') anagram.add('bac') self.assert_(['abc', 'bac'] in anagram.anagrams()) def test3(self): anagram = Anagram() anagram.add('efg') anagram.add('abc') anagram.add('bac') self.assert_(['abc', 'bac'] in anagram.anagrams()) self.assert_(['efg'] in anagram.anagrams()) if __name__ == "__main__": #unittest.main(argv=('', '-v')) import sys import time t1 = time.clock() anagram = Anagram() for word in sys.stdin: anagram.add(word.strip()) for words in anagram.anagrams(): print ' '.join(words) t2 = time.clock() print t2 - t1 }}} P3 700MGhz 384MB Win2000 Python 2.2.1ì—ì„œ 17만 단어로 실행하면 8.8ì´ˆ.