[SWEA/python] 22574: 높은 곳으로

songeunm·2024년 11월 12일

PS - python

목록 보기
38/62
post-thumbnail

문제

✔️ D3

문제 흐름

1부터 n까지의 합을 구하는 중간 과정에서 p와 일치하는 값이 존재한다면
맨 처음에 한 층을 움직이지 않는다를 선택하면 가장 최대로 p와 겹치지 않게 이동이 가능하다.

dp라고 해놓고 풀긴 했는데, 막상 풀이를 보니 dp가 아니라 단순 구현으로 생각된다.

코드

# 높은 곳으로
# dp

import sys
input = sys.stdin.readline

def dp (n, p):
    r = n * (n + 1) // 2
    f = 0
    for i in range(1, n + 1):
        f += i
        if f == p:
            return r - 1
    return r

if __name__ == "__main__":
    t = int(input())
    for testcase in range(t):
        n, p = map(int, input().split())

        result = dp(n, p)
        print(result)

마무리

새롭게 알게된 삼성에서 운영하는 학습 사이트이다.
D3 정도면 silver 난이도정도 되는 느낌이다.
백준에도 아직 풀지 않은 문제가 가득하지만 다양하게 접해볼수록 좋다고 생각하니 좋은 문제가 있으면 풀어보는 식으로 참고하면 좋을 것 같다!

profile
데굴데굴 구르는 개발자 지망생

0개의 댓글