몸소 겪었던 Python과 PyPy의 차이(메모리,속도)
Tech/Python2021. 2. 5. 00:19몸소 겪었던 Python과 PyPy의 차이(메모리,속도)

무엇을 경험했나? 백준 2263 트리 문제를 풀면서 경험했던 것을 공유하려 합니다. RecursionError sys.setrecursion(10**5) //pypy3에서는 정답, python3에서는 recursionError sys.setrecursion(10**6) //pypy3에서는 메모리초과, python3에서는 정답 (21.03.05 추가) 분명 동일한 recursion 깊이인데 왜 pypy3는 정답이고 python3는 recursionError(깊이 초과)가 발생할까요? pypy doc을 살펴보면 이렇게 설명되어 있습니다. 링크 pypy3에서는 정확한 크기를 할당하는 것이 아니라 대략적으로 크기를 할당하기 때문에 위와 같은 문제가 발생하게 됩니다. 메모리 초과(MLE) : write와 prin..

백준 2263 트리 풀이 pypy3, python3, java
OnlineJudge2021. 2. 4. 23:49백준 2263 트리 풀이 pypy3, python3, java

문제로이동 목차 문제 설명 재귀함수를 이용해 풀었습니다. 각 order의 특징을 살펴보면 inOrder : LVR (왼쪽-뿌리-오른쪽) postOrder : LRV (왼쪽-오른쪽-뿌리) preOrder : VLR (뿌리-왼쪽-오른쪽) 이러한 특징을 가졌는데, inOrder와 postOrder를 잘 보시면 구조가 다르기 때문에 이를 이용하여 풀어야 합니다. 1. postOrder는 뿌리의 위치가 항상 맨뒤에 존재합니다. 그래서 매 번 가장 마지막 노드를 가장 먼저 출력합니다. 2. 해당 뿌리 위치 왼쪽까지를 재귀합니다. 3. 해당 뿌리 위치 오른쪽부터 재귀합니다. 4. 1~3을 반복합니다. 문제 후기 pypy3와 python3의 차이점을 몸소 경험했던 문제였습니다. 신선한 충격이었고 덕분에 멘탈이 탈탈 털..

Codeforces Round #691 (Div. 2) B. Move and Turn 풀이
OnlineJudge2020. 12. 20. 00:14Codeforces Round #691 (Div. 2) B. Move and Turn 풀이

문제 문제로 이동 Problem - B - Codeforces codeforces.com 목차 문제 설명 전형적인 규칙 찾는 문제이다. 개인적으로 A보다 쉬웠다. 2차원 좌표평면 가운데에서 로봇은 동, 서, 남, 북으로 1미터씩 움직일 수 있다. 단, 한쪽 방향만으로 갈 수는 없고 북쪽으로 한 칸 이동 했다면 그 다음엔 서, 동으로 이동 남쪽으로 한 칸 이동 했다면 그 다음엔 서, 동으로 이동 서쪽으로 한 칸 이동 했다면 그 다음엔 북, 남으로 이동 동쪽으로 한 칸 이동 했다면 그 다음엔 북, 남으로 이동해야 한다. 이 때 N 값 만큼 이동할 수 있는데, 로봇이 갈 수 있는 공간의 개수를 출력하라는 문제다. 자세한건 예시를 보자. 예시 그림으로 설명하자면 동, 서, 남, 북으로 이동하기 때문에 결과적으로..

Codeforces Round #691 (Div. 2) A. Red-Blue Shuffle 풀이
OnlineJudge2020. 12. 19. 23:52Codeforces Round #691 (Div. 2) A. Red-Blue Shuffle 풀이

문제 문제로 이동 Problem - A - Codeforces codeforces.com 목차 문제 설명 두 수가 주어진다. 각 숫자의 위치를 바꾸는 여러가지 경우의 수 중 첫번째 수가 두번째 수보다 더 큰 확률이 높다면 RED를, 두번째 수가 첫번째 수보다 더 큰 확률이 높다면 BLUE를 같다면 EQUAL을 출력하라. 예시 위 입력 값으로 나오는 경우의 수는 아래와 같다. 1,2,3 순으로 나열 : 314>159 RED 1,3,2 순으로 나열 : 341>195 RED 2,1,3 순으로 나열 : 1342,3,1 순으로 나열 : 1433,1,2 순으로 나열 : 4313,2,1 순으로 나열 : 413RED 2, BLUE 4로 BLUE가 출력된다. 규칙 굳이 모든 수를 바꿔가며 비교할 필요가 없다. RED :..

백준 5676 음주코딩/세그먼트트리
OnlineJudge2020. 12. 15. 14:05백준 5676 음주코딩/세그먼트트리

문제로 이동 5676번: 음주 코딩 각 테스트 케이스마다 곱셈 명령의 결과를 한 줄에 모두 출력하면 된다. 출력하는 i번째 문자는 i번째 곱셈 명령의 결과이다. 양수인 경우에는 +, 음수인 경우에는 -, 영인 경우에는 0을 출력한다. www.acmicpc.net 목차 너무도 흔한 세그먼트 트리 문제이다. 하지만, 주의해야 할 부분이 몇 가지 있다. 주의해야 할 점 1. 구간곱 문제이므로 수가 커진다. 하지만, 이 문제에서는 음,양,0만 판별하면 되므로 모든 수를 -1, 0, 1로 바꿔준다. 2. 문제에 TC(테스트 케이스)가 주어지지 않았다. C++에선 while scanf 사용이 가능하지만 Python3에서는 다른 방법을 사용한다. TC가 주어지지 않는 경우 Python3에서는 Try - Except ..

image