코딩테스트

목표2-1.백준14888번 재귀 탐색의기본:연산자 끼워넣기

Giant Oreo 2021. 5. 3. 16:37

 

오늘의 문 제!

 

 

 

 

import sys
input = sys.stdin.readline

def cal(num, cnt, add, sub, mul, div):
   global n, maxv, minv
   if cnt == n:
     maxv = max(num, maxv)
     minv = min(num, minv)
     return 
   else:
     if add:
       cal(num+nums[cnt], cnt+1, add-1, sub, mul, div)
     if sub:
        cal(num-nums[cnt], cnt+1, add, sub-1, mul, div)
     if mul:
        cal(num*nums[cnt], cnt+1, add, sub, mul-1, div)
     if div:
        cal(int(num/nums[cnt]), cnt+1, add, sub, mul, div-1)

if __name__== "__main__": 
 maxv = -10**9
 minv = 10**9
 n=int(input().strip())
nums=list(map(int, input().strip().split()))
a,b,c,d=map(int, input().strip().split())
cal(nums[0], 1, a, b, c, d)
print(maxv)
print(minv)

 

 

* if __name__ = "__main__":

해당 모듈이 임포트된 경우가 아니라 인터프리터에서 직접 실행된 경우에 if문 이하의 코드를 돌리라는 명령어

-> 자바에서 main() 함수의 역할. 파이썬은 스크립트 파일이기 때문에 시작점이 없다. 

출처 : medium.com/@chullino/if-name-main-%EC%9D%80-%EC%99%9C-%ED%95%84%EC%9A%94%ED%95%A0%EA%B9%8C-bc48cba7f720

 

if __name__ == “__main__”은 왜 필요할까?

.

medium.com

 

* Strip()함수

:공백, 탭, 엔터를 의미하는 whitespace제거하는 함수