9. Given an array of strings, return another array containing all of its longest strings.
Example )
For inputArray = ["aba", "aa", "ad", "vcd", "aba"],
the output should be allLongestStrings(inputArray) = ["aba", "vcd", "aba"].
1
2
3
4
5
6
7
8
9
10
11
|
def allLongestStrings(inputArray):
array_len = []
for i in range(len(inputArray)):
array_len.append(len(inputArray[i]))
len_max = max(array_len)
new_list = []
for i in range(len(inputArray)):
if len(inputArray[i]) == len_max:
return new_list
|
'빨리 풀어야 한다!'는 생각에 노가다스러운 코드를 작성해서 정답을 맞추는데 급급했다.
이왕 공부하기 위해서 코드를 작성하는 것이니, 앞으로는 신중하게 생각하고 좀 더 간단한 코드를 만들어보자!
1
2
3
4
5
6
7
8
9
10
11
|
# solution code1
def allLongestStrings(inputArray):
m = max(len(s) for s in inputArray)
r = [s for s in inputArray if len(s) == m]
return r
# solution code2
def allLongestStrings(inputArray):
return [i for i in inputArray if len(i) == len(max(inputArray, key=len))]
|
'Programming > Python' 카테고리의 다른 글
[python] codeSignal 문제풀이 (10) (0) | 2020.01.10 |
---|---|
[python] codeSignal 문제풀이 (7~8) (0) | 2020.01.08 |
[python] codeSignal 문제풀이 (4~6) (0) | 2020.01.07 |
[python] codeSignal 문제풀이 (1~3) (0) | 2020.01.07 |