삼성 청년 SW 아카데미 SSAFY 5기 자소서(에세이)/접수 후기
지원한 이유? 나는 입학부터 쭉 정보보안을 공부해 왔다. 물론 개발을 등한시하지는 않았고 대부분의 프로젝트는 보안보다는 개발로 진행했다. 2020년 초에 ETRI인턴(체험형) VS 취약점분석인턴(취업연계형) 중 하나를 선택하는 일이 있었는데, 나루토 vs사스케 급으로 박빙이었다. 개발과 보안을 선택해야 하는 일이어서 앞으로의 장래에 영향을 미칠 것이라 생각했기 때문이다. 결국 나는 개발업무를 진행하는 ETRI 인턴을 선택했다. 그 이유는 단순히 "개발이 더 재밌어서", "더 배우고 싶어서"였다. 지원서 작성에 여러 항목이 있다. 인적/학력사항과 관련된 정보는 생략하고 내 스펙은 마지막에 기재해뒀다. 경력 및 어학 경력사항 ETRI 인턴과 전역 후 정직원으로 일했던 사항을 적었다. 어학사항 나는 토익, 오..
by후기/SSAFY··
세그먼트 트리(Segment Tree) 알고리즘
이게 뭐야? 트리 종류 중에 하나이며, 연속된 구간(특정 범위)의 합(최솟값, 최댓값, 곱 등)을 구하는데 많이 쓰인다. 아래에서 선형구현과 비교하며 왜 쓰는지, 어떻게 사용하는지 gif를 준비해 놨으니 자세히 알아보자. 세그먼트 트리 문제 보기 문제 - 1 페이지 www.acmicpc.net 일단 결과부터 보자 입력된 수는 10의 7제곱이다. 10개의 데이터 [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]를 두고 구간 합을 구해본다. 예시 입력 : 1 10 예시 출력 : 55 선형 구현 O(N) 초기화 과정 O(N) ARRAY = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] for i in range(1,len(ARRAY)): ARRAY[i] += ARRAY[i-1] 1 3 6..
byTech··
Codeforces Round #691 (Div. 2) B. Move and Turn 풀이
문제 문제로 이동 Problem - B - Codeforces codeforces.com 목차 문제 설명 전형적인 규칙 찾는 문제이다. 개인적으로 A보다 쉬웠다. 2차원 좌표평면 가운데에서 로봇은 동, 서, 남, 북으로 1미터씩 움직일 수 있다. 단, 한쪽 방향만으로 갈 수는 없고 북쪽으로 한 칸 이동 했다면 그 다음엔 서, 동으로 이동 남쪽으로 한 칸 이동 했다면 그 다음엔 서, 동으로 이동 서쪽으로 한 칸 이동 했다면 그 다음엔 북, 남으로 이동 동쪽으로 한 칸 이동 했다면 그 다음엔 북, 남으로 이동해야 한다. 이 때 N 값 만큼 이동할 수 있는데, 로봇이 갈 수 있는 공간의 개수를 출력하라는 문제다. 자세한건 예시를 보자. 예시 그림으로 설명하자면 동, 서, 남, 북으로 이동하기 때문에 결과적으로..
byOnlineJudge··
Codeforces 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 :..
byOnlineJudge··
백준 2042 구간 합 구하기/세그먼트트리
문제로 이동 목차 문제 설명 구간합 문제다. 이 게시물에서는 세그먼트 트리를 이용해 해결한다. 충분히 단순 반복문으로 해결할 수 있지만 그런 경우, 구간 합을 구하는데 O(n)이 걸린다. 이런 과정이 M번 반복된다면 O(MN)이 된다. 구간합 뿐만 아니라 특정 위치의 수를 변경시키는 기능도 있다. 해당 위치의 수가 바뀌면 그보다 큰 위치의 합도 모두 변경해야 하므로 TLE가 날 수 밖에 없다. 세그먼트 트리를 이용하면 O(Mlog(N))으로 해결할 수 있다. 소스 코드 소스코드 import sys input = sys.stdin.readline tree = list() nodes = list() #ChangeIdx : 수정할 인덱스, ChangeNum : 수정할 숫자 def update(start, en..
byOnlineJudge··
Educational Codeforces Round 100 (Rated for Div. 2) B. Find The Array 풀이
문제 문제로 이동 Problem - B - Codeforces codeforces.com 문제 설명 입력되는 수열을 A, 새로 생성 해야하는 수열을 B라고 두자. 위와 같은 조건이 주어진다. 위의 조건을 만족하는 B를 출력해야 한다. 이게 어떤 의미인지 예시에서 알아보자. 예시 S : A배열의 총합 조건 : 같은 인덱스 끼리의 차이(절대값)의 합 * 2가 S보다 작거나 같아야 한다. B의 총 합이 A의 총 합(S)보다 작다면 성립이 된다. 하지만 문제설명에서 언급했듯이 주의해야 할 점이 있다. 주의해야할 점 1. B_i와 B_i+1는 서로 나눠지는 관계다. 즉, 한쪽은 약수 반대쪽은 배수가 되어야 한다. 이 조건을 만족하는 수는 바로 2의 제곱수이다. 규칙 A_i 보다 작은 2의 제곱수 B_i를 만들면 ..
byOnlineJudge··
불러오는 중...