파이썬 재귀호출 제한 늘리기

 

파이썬은 기본적으로 재귀호출의 깊이를 1000까지만 가능하게 해두었다. 하지만 문제를 풀다보면 이 이상 재귀호출이 필요한 경우가 있는데 이를 위해 아래 문구를 기억해두자.
  import sys
  sys.setrecursionlimit(1000000)

 

 

 

'파이썬' 카테고리의 다른 글

[OJ] 빠른 입력 처리  (0) 2023.12.19
[OJ] 정수 입력 받기  (0) 2023.12.18
*args , **kwargs 알아보기  (0) 2022.08.31

문제풀이를 위한 빠른 입력 처리

 

빠른 입력처리를 위해 input을 stdin의 readline함수로 교체해서 사용
  import sys
  input = sys.stdin.readline

  a = input()
  print(a)

 

위 처럼 코드를 작성하면 입력은 빠르지만 마지막 줄바꿈 문자까지 입력이 되기 때문에 아래와 같이 3을 입력했을 때 3하고 줄바꿈이 들어가는 것을 볼 수 있다.
3
3

 

이를 해결하기 위해 아래와 같이 rstrip()을 사용해주면
  import sys
  input = sys.stdin.readline

  a = input().rstrip()
  print(a)

 

아래와 같이 개행문자(줄바꿈)를 없애준다.
3
3

 

 

물론 입력받으면서 바로 int형으로 형변환을 해줄 경우 마지막 개행문자(줄바꿈)는 자동으로 사라진다.
import sys
input = sys.stdin.readline

a = int(input())
print(a)
rstrip()을 사용하지 않았지만 출력 결과는 개행문자가 사라져 있다.
3
3

 

 

 

 

1줄 결론

  

readline을 사용해서 입력받을 경우 문자형태로 사용할 때는 꼭 rstrip()을 사용해서 개행문자를 없애주고 형변환을 하거나 split을 할 때는 크게 신경쓰지 않아도 된다. (다른 의견이 있으시면 댓글 부탁드려요)

'파이썬' 카테고리의 다른 글

[OJ] 재귀호출제한 풀기  (0) 2023.12.19
[OJ] 정수 입력 받기  (0) 2023.12.18
*args , **kwargs 알아보기  (0) 2022.08.31

 

한 줄의 정수 하나 입력받기

 

 

안녕하세요
  n = int( input() )

 

 

 

한 줄의 정수 여러개 입력받기

 

input으로 입력받은 1 2 3 을 각각 분리하고 정수형으로 형번환해서 a, b, c에 대입해주는 원리
입력: 1 2 3 
  a, b, c = map( int , input().split() )

 

 

 

한 줄의 정수 여러개 리스트로 입력받기

 

입력: 1 2 3 4 5 6 7 8 9 10
방법 1. 리스트 표현식 사용
  ls = [int(x) for x in input().split()]

 

 
방법 2. 리스트 형변환 사용
  ls = list(map(int, input().split()))

 

 

 

N개 줄의 정수 리스트로 입력받기

 

첫번째 줄에 입력되는 수의 개수 N이 주어지고 N개 만큼 입력받을 수가 행을 달리하여 주어지는 상황
입력:
3
10
20
30
방법 1.
  n = int(input())
  ls = [int(input(x)) for x in range(n)]
방법 2. 응용하여 한 줄로 처리
  ls = [int(input(x)) for x in range(int(input()))]

 

 

N 줄의 2차원 정수 리스트 입력받기

 

리스트 표현식을 사용해서 입력받으면 편함?
리스트를 사용할 때는 보통 반복문이 빠지질 않는다.
그렇기때문에 아래 표현식이 이해가 어렵다면 반복문과 리스트 그리고 리스트 표현식에 대한 공부를 할 필요가 있다.
입력:
2
1 1 1 1
1 1 1 1
방법 1.
n = int(input())
ls = [[int(x) for x in input().split()] for i in range(n)]
방법 2. 응용해서 한 줄로 처리
ls = [[int(x) for x in input().split()] for i in range(int(input()))]

 

 

 

 

 

 

 

참고: https://tekiter.tistory.com/3

'파이썬' 카테고리의 다른 글

[OJ] 재귀호출제한 풀기  (0) 2023.12.19
[OJ] 빠른 입력 처리  (0) 2023.12.19
*args , **kwargs 알아보기  (0) 2022.08.31

 

 

*args는 여러 개의 매개변수를 입력받고 싶을 때 사용(! 몇개가 들어올 지 알 수 없음)

args는 호출할 때 넘겨 받은 매개변수를 tuple로 처리함

 

실행코드
실행결과

 

 

 

**kwargs는 여러 개의 매개변수를 입력받고 싶을 때 사용하는 것은 같으나 딕셔너리 형태로 받아옴

args는 호출할 때 넘겨 받은 매개변수를 tuple로 처리함

실행코드
실행결과

 

=> 매개변수의 개수를 정하기 어려울 때 사용

 

참고(자세한 내용은 아래 블로그)

https://brunch.co.kr/@princox/180

'파이썬' 카테고리의 다른 글

[OJ] 재귀호출제한 풀기  (0) 2023.12.19
[OJ] 빠른 입력 처리  (0) 2023.12.19
[OJ] 정수 입력 받기  (0) 2023.12.18

+ Recent posts