목록2020/03/11 (6)
CHIqueen
def reverseInParentheses(inputString): return eval('"' + inputString.replace('(', '"+("').replace(')', '")[::-1]+"') + '"') 원래는 ( 으로 split해서 )이 있을때 잘라서 [::-1]하고 붙이고 [::-1]하려고 했으나 매우 비효율적이라 생각이 들어서 파이썬만이 할 수 있는 eval을 통해 replace해서 그냥 붙였다.
def sortByHeight(a): treeIn = [i for i in range(len(a)) if a[i]==-1] b = sorted(a)[len(treeIn):] for i in treeIn: b.insert(i,-1) return b 나무가 있는 인덱스를 찾고 정렬한다음에 그만큼 없앴다. 그리고 insert로 그 위치에 넣어줬다.
def isLucky(n): return sum(int(i) for i in str(n)[:len(str(n))//2]) == sum(int(i) for i in str(n)[len(str(n))//2:]) str로 만들어준다음에 슬라이싱으로 반 잘라 합이 같은지 비교했다.
from collections import Counter def commonCharacterCount(s1, s2): common_letters = Counter(s1) & Counter(s2) return sum(common_letters.values()) 딱히 Counter말고 떠오르는게 없어서 Counter를 썼다. def commonCharacterCount(s1, s2): com = [min(s1.count(i),s2.count(i)) for i in set(s1)] return sum(com) 다른 풀이를 보면 set으로 중복을 없앤 다음 파이썬 str 메서드중 count를 이용해 갯수를세 가장 최소를 구했다.
def allLongestStrings(inputArray): maxd = 0 for i in inputArray: maxd = max(maxd,len(i)) return [i for i in inputArray if len(i) == maxd] 나머지 풀이들을 봤는데 max함수에 key를 len으로만 줘서 반복문 돌릴필요가 없었던것이 신기했다. def allLongestStrings(inputArray): return [i for i in inputArray if len(i) == len(max(inputArray, key=len))]
After becoming famous, the CodeBots decided to move into a new building together. Each of the rooms has a different cost, and some of them are free, but there's a rumour that all the free rooms are haunted! Since the CodeBots are quite superstitious, they refuse to stay in any of the free rooms, or any of the rooms below any of the free rooms. Given matrix, a rectangular matrix of integers, wher..