[HackerRank][Python3] Common Child
2018. 7. 15. 19:41 |
프로그래밍/HackerRank
Problem :
https://www.hackerrank.com/challenges/common-child/problem
My Solution :
#!/usr/bin/env pypy3 def commonChild(s1, s2): n = len(s1) memo = [[0]*(n+1) for _ in range(n+1)] for i in range(n): for j in range(n): if s1[i] == s2[j]: memo[i+1][j+1] = memo[i][j] + 1 else: memo[i+1][j+1] = max(memo[i][j+1], memo[i+1][j]) return memo[n][n] s1, s2 = input(), input() result = commonChild(s1, s2) print(result)
Comment :
이 문제는 아무리 노력을 해봐도 Python3 (CPython) 로는 일부 Test Case의 Timeout을 넘지 못했다. 하지만 동일 코드를 Pypy3로 실행해보면 통과를 한다. Test Case 5를 예로 들면 아래와 같이 거의 30배에 가까운 엄청난 성능 차이를 보인다. 그동안 별 생각없이 CPython을 사용했는데 Pypy로 갈아타야 하는 것인가...
[root@CentOS7 ~]# time python3 commonChild.py 1417 real 0m14.191s user 0m14.064s sys 0m0.098s [root@CentOS7 ~]# time pypy3 commonChild.py 1417 real 0m0.685s user 0m0.506s sys 0m0.070s
'프로그래밍 > HackerRank' 카테고리의 다른 글
[HackerRank][Python3] Triple sum (0) | 2018.07.16 |
---|---|
[HackerRank][Python3] Max Min (0) | 2018.07.16 |
[HackerRank][Python3] Greedy Florist (0) | 2018.07.16 |
[HackerRank][Python3] Luck Balance (0) | 2018.07.15 |
[HackerRank][Python3] Sherlock and the Valid String (0) | 2018.07.15 |
[HackerRank][Python3] Strings: Making Anagrams (0) | 2018.07.15 |
[HackerRank][Python3] Count Triplets (0) | 2018.07.13 |
[HackerRank][Python3] Frequency Queries (0) | 2018.07.13 |
최근에 달린 댓글 최근에 달린 댓글