백준/ Silver 5 문제 , 백준 파이썬 2628 , 박 터뜨리기
Check Point ! ( 해당사항 ✓체크 )
1. 막힘 없이 수월하게 풀린 문제인가?
2. 1시간이내로 풀렸던 문제인가?
3. 1시간 이상 or 며칠을 두고 풀어봤더니 풀린 문제인가?
4. 시간을 써도 도무지 풀 수 없는 문제인가?
5. 솔루션을 찾아봤는가?
-------------------------------------------------------------------------------------------
난이도 체감
1. 최상
2. 상
3. 중
4. 하
<이해도>
1. 완벽히 이해
2. 다소 헷갈리는 부분들이 있음
3. 이해 못함
<덧붙일 말>
내 방법 말고 훨씬 빨리 푸는 법이 있지만, 한번 다른 풀이로 풀어봤다.
배열의 크기가 최대 1000까지라 구현으로 직접한번 다 구했음.
<문제 출처>
https://www.acmicpc.net/problem/19939
------------------------------------------------------------------------------------------------------------------------------
1. N을 K로 나눈 몫 들로만 이루어진 K개의 배열을 만든다.
2. 차례대로 +0 -1 +1 -2 +2 -3 +3 .... 을 크기만큼해줘서 각자 다 다른 숫자들로 만들어준다.
3. 이후 배열전체의 합을 N 과 비교하여 N과의 차이를 구한다.
4. N보다 크다면 (차이값-1) 인덱스에 차이 만큼의 값을 빼준다.
N보다 작다면 (K-차이값) 인덱스에 차이 만큼의 값을 더해준다.
5. 이후 만들어진 배열의 최댓값과 최솟값 차이를 구해주면 된다.
ex)
500 17 을 입력시
처음에 만들어지는 윗 배열의 총합은 493 이다.
7을 더 더해 500을 만들어줘야한다.
K값인 17에서 N과의 차이만큼인 7을 빼준다.
그러면 10이 나오니
10번 인덱스 31에 7을 더해줘서 38을 생성해준다.
그렇게 되면 최댓값은 38, 최솟값은 21로 정답은 17이다.
------------------------------------------------------------------------------------------------------------------------------
정답
'알고리즘 공부 > 백준 - 파이썬' 카테고리의 다른 글
백준/ Silver 4 문제 , 백준 파이썬 1051, 숫자 정사각형 (0) | 2022.07.07 |
---|---|
백준/ Silver 5 문제 , 백준 파이썬 14912 , 숫자 빈도수 (0) | 2022.07.03 |
백준/ Silver 5 문제 , 백준 파이썬 2628, 종이자르기 (0) | 2022.07.01 |
백준/ Silver 5 문제 , 백준 파이썬 15904 , UCPC는 무엇의 약자일까? (0) | 2022.06.30 |
백준/ Silver 5 문제 , 백준 파이썬 10826, 피보나치 수 4 (0) | 2022.06.29 |