본문 바로가기

Programming [Python]/백준 알고리즘 솔루션

#349 백준 파이썬 [1059] 수2

https://www.acmicpc.net/problem/1059

 

SOLUTION

문제의 맹점을 확인해야한다. 만약 N = 4이고 만들 수 있는 구간이 1~7 이라고 해보자.

4를 포함한 구간 14, 24, 34, 45, 46, 47 총 6개 == end - start

4 미만의 가능한 숫자 * 4 초과의 가능한 숫자 == (N - start) * (end - N)

두 가지로 구성되어있다.

PYTHON CODE

L = int(input())
L_list = sorted(list(map(int,input().split()))) #순서대로 정리
N = int(input())
start = 0

if N in L_list: 
    print(0) #만들 수 없음
    
else:
  for i in L_list:
      if N > i:
          start = i + 1 #가능한 첫 숫자
      else:
          end = i - 1 #가능한 끝 숫자
          break
   print(end - start + (end - N) * (N - start))