jyamethyst21 님의 블로그

백준 2010번- '플러그' (PYTHON 풀이) 본문

CODING 💻

백준 2010번- '플러그' (PYTHON 풀이)

jyamethyst21 2025. 12. 22. 00:47

문제:

 

일단 이 문제를 처음 봤을 때 이해를 못해서 다른 블로그 찾아보면서 문제 이해만 참고하였다.

그림을 보면 쉽게 이해가 가능한데, 우선 우리가 실제로 멀티탭을 사용할 때 다른 콘센트 하나에 전선을 연결해서 사용 하는 것을 생각해보자. 그럼 위와 같이 첫번째 5개 충전이 가능한 멀티탭에서 1개의 구멍에 다른 멀티탭의 선을 꽂게 되면 두번째 콘센트의 개수 전부를 사용할 수 있지 않는가? 그럼 위 예시에서는 첫번째 콘센트에서는 다음 콘센트 연결을 위해서 1개를 쓰고 나머지인 4개를 다른 전자기기 사용에 활용할 수 있다. 그리고 두번째(마지막) 콘센트는 또 다른 콘센트를 연결할 필요가 없으므로 8개 전부를 사용할 수 있어 최종적으로 4+8=12개를 사용할 수 있다.

위와 같이 그림 예시를 보면, 이제 문제를 완벽히 이해할 수 있을 것이다. 결론적으로 이를 통해 마지막 콘센트가 아닌 이상은 구멍의 개수에서 무조건 1을 빼주고 마지막 콘센트는 구멍 개수 전부를 온전히 사용할 수 있다는 규칙을 확인할 수 있다.

 

풀이:

N = int(input())
total = 0

for i in range(N):
    n = int(input())
    total = total + (n-1)
print(total+1)

앞선 설명을 그대로 코드로 작성하면 다음과 같다.

반복문을 돌 횟수와 총 사용 개수 파악을 위해 0으로 total 변수를 초기화해준다.

그 후 반복문을 돌면서 멀티탭 구멍 개수를 입력받고 앞선 설명대로 구멍의 개수에서 1씩 빼주어서 total을 갱신해준다.

그 다음 바로 출력만 하면 되는데 이때 주의할 점이 마지막 콘센트 구멍의 개수이다. 마지막은 다음 이어질 콘센트가 없기 때문에 무조건 해당 구멍 개수를 전부 다 사용할 수 있다고 말했다.

그런데 반복문을 돌면서 무조건 1씩 뺴주는 것으로 규칙을 작성했기 때문에 프린트할 때는 1을 다시 더해주어서 마지막 멀티탭 구멍의 개수까지 정확히 계산해줘야한다.

이렇게 풀면 쉽게 풀 수 있다. 단, 해당 코드는 파이썬으로 제출할 시 시간 초과가 나기 때문에 pypy3로 제출하길 바란다.