ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 다음에 올 숫자
    코딩 테스트/Level 0 2022. 12. 16. 23:04
    반응형

    https://school.programmers.co.kr/learn/courses/30/lessons/120924

    파이썬

    def solution(c):
        if (temp := c[1] - c[0]) == c[2] - c[1]:  # 등차 수열이라면
            return c[-1] + temp
        return (c[1] / c[0]) * c[-1]

    코드 자체는 어렵지 않은데 
    등차수열과 등비수열의 단어가 익숙하지 않아서 오답이 좀 있었던 것 같다. 
    아직 등차와 등비수열을 배우지 않은 학생들도 있을 것 같고.. 

    파이썬에서는 a[-1]로 a 리스트의 마지막 원소를 가져올 수 있다. 
    다른 언어에서는 보통 a[len(a) - 1] 로 접근하는데...
    파이썬에서는 len(a)를 생략할 수 있다.
    이런 느낌이 파이써닉. 

    등차수열은 1,3,5,7,9,... 와 같은 수열이다. 
    '등'은 '같다'는 뜻, '차'는 '차이', '빼기'.. 
    즉 어떤 항과 다음 항과의 차이가 모두 같은 수열이다. 

    '1항과 0항의 차이'와 '2항과 1항의 차이'가 같으면 등차수열이다. 

    등비수열은 1,2,4,8,16,... 와 같은 수열이다. 
    '등'은 '같다'는 뜻, '비'는 '비율'.. 
    즉 어떤 항과 다음 항과의 비율이 모두 같은 수열이다. 

    '1항과 0항의 비율'은 '1항/0항'이다. 

    위에서 계산한 차이와, 비율을 마지막 항에 연산해 주면 마지막 다음 항을 알 수 있다. 

    solution = lambda c: c[-1] + temp if c[1] + (temp := c[1] - c[0]) == c[2] else c[-1] * c[1] / c[0]

     

    코틀린

    class Solution {
        fun solution(c: IntArray) = if (c[1] - c[0] == c[2] - c[1]) c[c.size - 1] + c[2] - c[1] else c[c.size - 1] * c[2] / c[1]
    }
    반응형
Designed by Tistory.