본문 바로가기
알고리즘/프로그래머스

우박수열 정적분

by 1.5볼트 2023. 3. 20.
728x90

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

문제 좀 알고 와라

우박 수열을 정적분 한다 어차피 x 가 1씩 증가하고 y 증가량이 직선이기 때문에 그냥 양 끝점 더해서 2로 나눠주면 된다

그런데 구간을 1, -2라는 식의 개소리를 해서 화가 났지만 다행히도 앞에 값은 시작점 뒤에 -는 끝점부터 거리라는 걸 알았다 지금 이렇게 설명해도 이 새끼 뭐라는 거야라고 생각하는 너를 위한 설명은 더 이상 없다

어쨌든 나머지는 수열이 1이 될 때까지 반복해서 구간에 해당하는 적분 값만 구하고 원하는 구간별로 더해주면 된다

def solution(a, r):
    f=lambda x: x//2 if x%2==0 else x*3+1
    p=[]
    while a!=1:
        b=f(a)
        p.append((a+b)/2)
        a=b
    n=len(p)
    t=[]
    for i in r:
        if i[0]>n+i[1]:t.append(-1)
        else:t.append(sum(p[i[0]:n+i[1]]))
    return t

 

'알고리즘 > 프로그래머스' 카테고리의 다른 글

광물 캐기  (0) 2023.03.24
당구 연습  (0) 2023.03.21
게임 맵 최단거리  (0) 2023.03.19
2개 이하로 다른 비트  (0) 2023.03.18
점찍기  (0) 2023.03.17

댓글