관리 메뉴

솜씨좋은장씨

[BaekJoon] 1292번 : 쉽게 푸는 문제 (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 1292번 : 쉽게 푸는 문제 (Python)

솜씨좋은장씨 2022. 6. 14. 11:42
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 쉽게 푸는 문제 입니다.

 

1292번: 쉽게 푸는 문제

첫째 줄에 구간의 시작과 끝을 나타내는 정수 A, B(1 ≤ A ≤ B ≤ 1,000)가 주어진다. 즉, 수열에서 A번째 숫자부터 B번째 숫자까지 합을 구하면 된다.

www.acmicpc.net

 

👨🏻‍💻 문제 풀이

먼저 수열을 만들어줍니다.

수열은 1 부터 리스트에 1, 2, 2, 3, 3, 3 이렇게 각 숫자만큼씩 추가하면서

그 수열의 길이가 B 보다 커지는 경우에 멈추도록 합니다.

def make_number_list(start, end):
    number_list = []
    
    number = 1
    
    while True:
        if len(number_list) > end:
            break
            
        number_list += [number] * number
        
        number += 1
            
    return number_list[start-1:end]

그러고 난 이후 입력받은 A, B 를 활용하여 수열을 쪼갭니다.

def easy_solve_problem(start, end):
    number_list = make_number_list(start, end)
    return sum(number_list)

정답은 그 수열의 값을 모두 더한 값으로 합니다.

 

전체 코드는 아래를 참고해주세요.

👨🏻‍💻 코드 ( Solution )

def make_number_list(start, end):
    number_list = []
    
    number = 1
    
    while True:
        if len(number_list) > end:
            break
            
        number_list += [number] * number
        
        number += 1
            
    return number_list[start-1:end]

def easy_solve_problem(start, end):
    number_list = make_number_list(start, end)
    return sum(number_list)

if __name__ == "__main__":
    A, B = map(int, input().split())
    print(easy_solve_problem(start=A, end=B))

 

 

GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments