본문 바로가기
Algorithm

[구현/수학] 백준 1292 쉽게 푸는 문제 - Python

by jangThang 2022. 2. 4.
반응형

백준 온라인 저지

 

[ Contents ]

     

     

    1. 문제 (링크 참조)

     

    1292번: 쉽게 푸는 문제

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

    www.acmicpc.net

     

     

     

    2. 문제 풀이

    1 2 2 3 3 3 4 4 4 4 ....

     위와 같은 규칙을 가진 수열의 구간합을 구하는 문제입니다.

     

    2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학

     

    [Algorithm] 단골 1번 문제, 구현 / 수학

    [ Contents ] 1. 구현  단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하

    star7sss.tistory.com

     먼저 수열의 규칙대로 구현하고, 구간의 합을 구하면 됩니다.

     

     

     

    3. 코드

    A, B = map(int, input().split())
    
    cnt = 0
    res = 0
    for i in range(1000):
        for j in range(i):
            cnt += 1
            if cnt >= A:
                res += i
            if cnt > B-1:
                break
        if cnt > B-1:
            break
    print(res)

     1, 2, 3... k 순으로 1씩 커지며, 그 숫자만큼 반복합니다. 바깥 for문에서는 1씩 증가시키고, 안쪽 for문에서는 k만큼 반복해서 수열의 패턴을 구현합니다.

     수열을 구현한 뒤, cnt(count)을 셉니다. A 이상일 때부터 합을 구하고, B를 넘어가면 반복문을 빠져나옵니다.

     

     

    반응형

    댓글