Home

[Python] Recursion Error 재귀 함수 오류 최대 한도 제한 변경

1. 문제 알고리즘 문제를 해결하던 중에, python을 이용하여 dfs 문제를 푸는 경우가 있었습니다. 이 때, 재귀함수를 사용하고 나서 Recursion Error 런타임 에러가 발생했습니다. 이는 python의 기본 재귀함수 깊이가 1000으로 한도가 설정되어 있기 때문입니다. 알고리즘은 맞는데 이런 문제로 시간을 많이 사용하면 시간이 크게 날아가니, 재귀함수 문제가 통과가 안될 때에는 이런 문제를 생각해보시는 것도 좋을 것 같습니다. 2. 문제 해결 방법 위의 문제를 해결해 주기 위해서는, python sys 모듈에 있는 setrecursionlimit 메소드를 사용하면 해결됩니다. 아래와 같은 방식으...

Read more

[백준] 18870번 좌표 압축 _ 문제 풀이

1. 문제 https://www.acmicpc.net/problem/18870 2. 풀이 python의 set, dictionary, list 를 이용하면 아래와 같이 손쉽게 문제를 해결할 수 있습니다. N=int(input()) A=list((map(int,input().strip().split()))) B={} for i, val in enumerate(sorted(list(set(A)))): B[val] = i for val in A: print(B[val], end=' ')

Read more

[백준] 17143번 낚시왕 _ 문제 풀이

1. 문제 https://www.acmicpc.net/problem/17143 2. 풀이 삼성 SW 역량테스트 문제입니다. 전반적인 문제 이해는 쉽지만, 물고기의 이동을 구현하는 것이 다소 오래 걸렸습니다. 물고기의 이동을 어떻게 훨씬 더 간단하게 구현할까 생각했지만, 다른 풀이를 봐도 크게 쉽게 풀지는 못한 것 같습니다. 방향에 따라 일일히 구현해주어야 되는 문제인 것으로 보여집니다. import copy R, C, M = map(int, input().split()) fisher_c = 0 maps = [[[] for __ in range(C)] for _ in range(R)] # d가 1인 경우는 ...

Read more

[백준] 20056번 마법사 상어와 파이어볼 _ 문제 풀이

1. 문제 https://www.acmicpc.net/problem/20056 2. 풀이 삼성 SW 역량테스트 문제입니다. 격자의 행과 열은 1번부터 N번까지 번호가 매겨져 있고, 1번 행은 N번과 연결되어 있고, 1번 열은 N번 열과 연결되어 있다라는 문장이 처음에는 좀 헷갈렸습니다. 좀 더 읽다보니 원형 큐와 같은 구조로 1과 N이 이어져있는 구조라는 것을 알게 되었습니다. 구현은 큰 문제 없이 잘 된 문제인 것 같습니다. 풀이 방법은 아래와 같습니다. 자세한 사항은 소스코드를 봐주세요. 불들을 저장하는 list 를 생성하여 [r, c, m, s, d] 값을 저장합니다. 불들을 이동 시킨 후에...

Read more

[백준] 2884번 알람 시계 _ 문제 풀이

1. 문제 https://www.acmicpc.net/problem/2884 2. 풀이 2.1. 풀이1 h, m = map(int, input().split()) print((h-1)%24 if m-45<0 else h,(m-45)%60) 2.2. 풀이2 a,b = map(int, input().split()) x = a*60 + b-45 print(x//60%24,x%60)

Read more