코딩테스트

프로그래머스로 풀이 사이트 변경

임지혁코딩 2024. 3. 13. 17:29

기존, 각 문제별 풀이를 진행하기 위해 백준에서 코딩테스트를 진행하였는데,

이제 조만간 찾아오게 될 실전 코딩 테스트를 위해 , 이 환경을 변경하였다.

이로 인한 주의사항을 정리하자

 

1. input을 넣을 필요가 없다.

기존 백준에선 직접 input을 넣어주어야 했는데, 프로그래머스에서는 이가 주어졌다.

그러므로 input을 넣을 필요가 없고, sys를 import 하여 시간을 단축시키는 tip을 사용할 수 없게 되었다. 

 

2. print도 할 필요가 없다.

def solution안에 있는 return의 값으로만 출력이 정해지므로, 따로 출력을 진행할 필요가 없다.

 

3. DFS,BFS시 GLOBAL보단 모든 내용을 매개변수로 받는것이 좋아졌다.

import sys
sys.setrecursionlimit(10000000)

cnt = 0

def DFS(x,totalval,numbers,target) :
    global cnt 
    
    if x == len(numbers):
        if totalval == target :
            cnt+=1
            return
    
    if (0<=x<len(numbers)) :
        DFS(x+1,totalval+numbers[x],numbers,target)
        DFS(x+1,totalval-numbers[x],numbers,target)
    return

def solution(numbers, target):
    global cnt 
    DFS(0,0,numbers,target)
    return cnt
    

이것이 프로그래머스 버전. DFS를 SOLUTION 함수보다 위에 호출해야 함으로, 매개변수로 내용을 받아서 작성하는 것이 

훨씬 보기도 좋고 생각하기도 편하다.