SSAFY 5기 6주간 경험한 후기(회고록)
자세한 커리큘럼은 언급되지 않습니다. 또한 모든 내용은 지극히 주관적임을 말씀드립니다. 이런 분들이 읽으시면 좋습니다 1. 싸피 지원을 희망하시는 분(싸피 6기, 7기 ...) 2. 제 사생활이 궁금하신 분 SSAFY 커리큘럼 후기 1주차 스타트 캠프 : OT, 반별 OT, 반 배정, 추가 합격 다들 어색 어색한 분위기지만 반 별로 꼭 한 명씩 리드하는 사람이 있습니다.(저 아님 진짜 아님) 마치 SSAFY에서 MBTI로 반 별 배치시킨 건 아닌가.. 하는 생각도 들었는데 골고루 배치되어 있다는 느낌을 받았습니다. 이 때 각 반 임시 반장님들과 담당 프로님께서는 반 인원끼리 어떻게 빨리 친해질 수 있을까라는 고민을 다 같이 했습니다. 함께 얘기를 나눴던 반장님들 너무 감사합니다.😀 스타트 캠프선물로 후드..
by후기/회고··
27
Python3 나누기연산(/)과 시프트연산(>>)의 속도 차이를 알아보자
목차 결론 시프트연산이 더 빠릅니다. (미미하게) 시프트 연산은 int형이 32bits이므로 사용하는데 제한이 있습니다. 물론 언어별로 사용할 수 있는 방법이 상이한 것으로 알고 있습니다. 필요한 상황에 따라, 본인 스타일에 따라 적절히 사용하시면 되겠습니다. Python 디스어셈블러 내부적으로 어떻게 다른지 간단하게 살펴보겠습니다. 코드는 위의 소스코드를 사용했으며, 나누기 연산을 호출할 때와 시프트를 호출할 때 디스어셈블러로 살펴보았습니다. 차이점은 BINARY_TRUE_DIVIDE와 BINARY_RSHIFT를 호출 하는 것입니다. 내부적인 동작을 살펴보려 했으나 자세한 내용이 설명된 DOC이 없어서 생략하겠습니다. 결론적으로 파이썬3(3.6~3.8)에선 별도의 최적화 과정은 없었습니다. C++ 디스..
byTech··
백준 20304 비밀번호 제작 풀이 python, java
문제로이동 목차 문제 설명 펜윅트리를 하며 비트마스킹을 써왔던 것이 조금은 도움이 되었습니다. 이번 문제는 만들어둔 사진으로 대체하겠습니다. 아래의 과정(BFS)을 반복적으로 거치고 나면 가장 처음에 입력된 값을 기준으로 1의 거리를 가진 간선들이 연결되어 있습니다. 소스 코드 Python from collections import deque import sys input = sys.stdin.readline MIN = -10e9 N = int(input()) M = int(input()) arr = [MIN]*1000001 dq = deque() xs = list(map(int,input().split())) for x in xs: arr[x] = 0 dq.append(x) maxnum = 0 whil..
byOnlineJudge··
2
몸소 겪었던 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..
byTech··
백준 2263 트리 풀이 pypy3, python3, java
문제로이동 목차 문제 설명 재귀함수를 이용해 풀었습니다. 각 order의 특징을 살펴보면 inOrder : LVR (왼쪽-뿌리-오른쪽) postOrder : LRV (왼쪽-오른쪽-뿌리) preOrder : VLR (뿌리-왼쪽-오른쪽) 이러한 특징을 가졌는데, inOrder와 postOrder를 잘 보시면 구조가 다르기 때문에 이를 이용하여 풀어야 합니다. 1. postOrder는 뿌리의 위치가 항상 맨뒤에 존재합니다. 그래서 매 번 가장 마지막 노드를 가장 먼저 출력합니다. 2. 해당 뿌리 위치 왼쪽까지를 재귀합니다. 3. 해당 뿌리 위치 오른쪽부터 재귀합니다. 4. 1~3을 반복합니다. 문제 후기 pypy3와 python3의 차이점을 몸소 경험했던 문제였습니다. 신선한 충격이었고 덕분에 멘탈이 탈탈 털..
byOnlineJudge··
SWEA 2805 농작물 수확하기 풀이 java
문제로이동 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 목차 풀이 과정 첫 시도엔 BFS를 떠올려 시도했습니다. D3에 BFS가 나올리는 없어서 다시 생각해보니 다이아몬드 형태를 한 번에 더할 수 있겠다는 확신이 들었습니다. 0 - 1 - 2 - 1 - 0과 같이 점차 증가했다가 중간값에 도달하면 다시 감소하는 식을 구했습니다만, 해당 방법 이외에도 양 끝점에서 동시에 값을 더하는 방법이 있습니다. for(int i =0;iN/2)break; Deque orderQ = new ArrayDeque(); for(Pos dpos:direction) { int nx = tmp.x+dpos.x; int ny = tm..
byOnlineJudge··
불러오는 중...