Photo by Pietro Mattia on Unsplash
def solution(nums):
maximum = max(nums)
for num in nums:
maximum = max([max(maximum), max(num)]), max([min(num), min(maximum)])
return maximum[0] * maximum[1]
처음에는 max값으로 뽑힌 값과 비교하면 될거라고 생각해서 코드를 작성했다. 그런데 다른 사람의 답안들을 본 결과 list comprehension으로 index 0과 1 값의 max, min 값을 모아 각각의 max값을 곱하면 답이 나온다는 것을 알게되었다. 참고하여 만든 코드는 다음과 같다.
def solution(nums):
return max(max(num) for num in nums) * max(min(num) for num in nums)
def solution(answers):
fir_patt = [1,2,3,4,5]
sec_patt = [2,1,2,3,2,4,2,5]
thi_patt = [3,3,1,1,2,2,4,4,5,5]
grades = [0, 0, 0]
for idx, answer in enumerate(answers):
grades[0] += (answer == fir_patt[idx % 5])
grades[1] += (answer == sec_patt[idx % 8])
grades[2] += (answer == thi_patt[idx % 10])
return [i+1 for i, grade in enumerate(grades) if max(grades) == grade]
패턴이 반복되는 주기별로 나눈 나머지값들을 검사해보는 로직을 짰다. 여기서 코드를 더 줄이려면 억지로 줄이는 느낌이 들어서 직관적으로 보기 좋게 짠 것 같아서 굳이 고치지 않았다.
def solution(s):
alp_nums = [
'zero', 'one', 'two',
'three','four','five',
'six','seven','eight',
'nine']
for idx, alp_num in enumerate(alp_nums):
s = s.replace(alp_num, str(idx))
return int(s)
replace를 활용하여 문자로 된 숫자를 숫자값으로 바꿔주었다. 혹시 될까 싶어서 문자열 s안에 알파벳 숫자가 있는지 검사하는 if문을 빼고 바로 써봤는데 동작하는 걸 보고 replace에는 검사하고자하는 값이 없어도 상관없다는 사실을 알게되었다.
폰켓몬