기술 면접 회고

면접 결과 정리 7/25일 기술면접에 참여했다. 처음이라 떨리지도 않았고 기대도 안했다. 이번 경험으로 어떻게 진행되는구나, 어떤 질문들을 하는구나를 느끼는 게 중요하다고 생각했다. 스스로 얼마나 준비가 덜 된 사람인지 알기에 열심히 적기도 했고 기억을 더듬었다. 한번 들은 질문은 안까먹기 위해 정리하는 글이다. 주제 1 PintOS 1. 스레드와 프로세스의 의미와 차이는 무엇인가? 내 대답 쓰레드는 연산을 처리하는 가장 작은 단위. 연산이라 하면 간단하게는 숫자와 숫자를 더한다던가 하는 작동되는 한 단위. 프로세스는 한 프로그램에서 발생하는 일련의 과정. ...

2023년 7월 27일 · 3 분 · 배준수

파이썬 알고리즘 : 요세푸스 문제 0, 뱀, 최대 힙

2023년 7월 28일 알고리즘 문제풀 백준 11866번 문제 링크 1차 시도 나의 생각 처음엔 인덱스를 옮겨가면서 없어진 수를 표시하는 방법을 생각했다. 예를 들어 [[1,0].[2,0],[3,0],[4,0].[5,0]] 이런 식을 설정하고 빠지는 원소는 2번째 원소를 1로 바꿔주는 방법. 하지만 굳이 배열을 한번 더 복잡하게 만들어야 할 필요성이 없다고 생각했다. 따라서 덱으로 설정한 배열의 가장 앞 원소만 주목하되, 현재 뺄 차례인지 그냥 넘어갈 차례인지만 분류하면 되겠다고 판단하였다. 뺄 차례라면 popleft 한 후 따로 만들어둔 정답을 위한 배열에 append 하였다. 로직 자체는 어려움이 없었으나 예제에서 출력할 때 수열을 담는 괄호가 대괄호가 아니라 그냥 괄호 ‘<>‘였다. 이 부분이 신경쓰였지만 가장 먼저 ‘<‘를 배열의 앞에 넣어주고, 수열을 넣을 때 마다 숫자를 str로 바꾼 후 따옴표(,)와 공백( )을 붙여서 넣었다. 그 이후 *를 이용해 원소들만 출력했다. ...

2023년 7월 27일 · 5 분 · 배준수

파이썬 알고리즘 : 원 영역, 히스토그램에서 가장 큰 직사각형

2023년 7월 26일 알고리즘 문제 풀이 백준 6549 문제 링크 시도1 나의 생각 왼쪽부터 반복문을 통해 조건에 따라 스택에 사각형의 넓이를 넣고 수정하는 방법을 사용하였다. 스택에는 사각형의 높이와 너비가 원소인 배열을 집어넣었다. 예를 들어, 이번 사각형의 높이가 4라면 [4,1]을 넣어주는 방법이다. 맨 처음을 위해 스택이 비어있을 땐 조건과 무관하게 스택에 삽입하였다. 이후는 최근 스택에 들어간 사각형의 높이(이전 사각형)와 현재 반복문에서 주목하는 사각형(현재 사각형)의 높이를 비교하였다. 만약 현재 사각형의 높이가 더 크거나 같다면, 스택에 들어 있는 사각형은 너비를 1 늘렸다. 이후는 현재 사각형과 더 이전에 들어갔던 사각형들의 높이를 비교하였다. 그래서 너비를 1 늘려주거나 만약 현재 사각형의 높이가 작으면 너비를 늘리지 않고 스택에 들어 있는 사각형의 높이와 너비를 곱하여 넓이를 구한 후 최댓값과 비교하여 저장하는 방법을 사용하였다. 로직을 정리해보자면 다음과 같다. 문제에서는 각 케이스별로 출력해야 하지만, 편의를 위해 하나의 케이스에서 발생하는 로직만 표시하였다. ...

2023년 7월 26일 · 10 분 · 배준수

블로그 개편

정글 끝나고 열심히 공부하며 업로드 하려했는데, 오히려 정글 때 보다 더 업로드가 없네요. 진짜 내일부턴 하루에 하나는 올리자는 마음으로 대대적으로 개편하였습니다. 게시판 통폐합 : CSAPP와 Introduction to Alogrithm을 STUDY 게시판으로 통합하였습니다. Book을 daily 내로, Essay는 Jungle 내로 편입하였습니다. 또한 각 게시판마다 하위 디렉토리로 분류하였습니다. 세부사항 Log : Daily (추후 Weekly나 Monthly 추가) Jungle : Log,Essay,Remind(복습 후 정리 게시글은 Remind에 업로드됩니다.) Notice : (공지사항이 게시됩니다.) Project: Portfolio, Codeeat(다음 개인 프로젝트 시작하면 또 추가됩니다.) Study: CSAPP,Algorithm(알고리즘 이론과 문제풀이 모두 업로드됩니다.) Life: Book ...

2023년 7월 25일 · 1 분 · 배준수

3. 함수의 증가(2)

3.2 표준 표기법과 흔히 사용되는 함수 단조성 m≤n일 때 f(m)≤f(n)이면 함수 f(n)은 단조증가 m≤n일 때 f(n)≤f(m)이면 함수 f(n)은 단조감수 m<n일 때 f(m)<f(n)이면 함수 f(n)은 순증가 m<n일 때 f(n)<f(m)이면 함수 f(n)은 순감소 내림과 올림 x의 내림 : 임의의 실수 x에 대해 x 이하의 정수 중 가장 큰 수 x의 올림 : 임의의 실수 x 에 대해 x 이하의 정수 중 가장 작은 수 a mon n = a%n = a를 n으로 나눈 나머지(remainder, residue) ...

2023년 7월 23일 · 1 분 · 배준수

3. 함수의 증가(1)

3. Growhth of Functions 일반적으로 알고리즘의 정확한 실행 시간을 계산할 필요가 없다. 입력이 충분히 크면 최고차항간 비교만 유의미하기 때문이다. ex) 병합정렬(nlgn), 삽입정렬(n^2) 처럼 이전에 공부한 애들을 보면 알 수 있음. 입력이 충분히 커서 실행 시간의 증가율의 상대적 순서만 볼때, 우리는 알고리즘의 점근적(asymptotic) 효율성을 따지게 된다. 입력 크기가 아주 작을 때를 제외하고는 일반적으로 최선의 선택이 될 수 있다. 즉, 일반적인 상황이란 최고차항의 차수로 실행시간의 차이를 비교하는 때를 말하는데 이 때는 점근적으로 접근하게 된다. ...

2023년 7월 19일 · 6 분 · 배준수

2023년 7월 12일 TIL

날짜 2023년 7월 12일 계획 알고리즘 3문제 공부하기 C 프로그래밍 Red-Black Tree 복습하기 애들코딩 프로젝트 보안하기 코드잇 배포하기 결과 스택과 관련된 알고리즘 3문제를 공부하고 이해하였음 Red-Black tree의 정의에 대하여 정리하였음 애들코딩 프로젝트는 우선 코드잇 배포를 위해 연기하였음 코드잇 배포는 배포 과정이 처음이라 공부하면서 진행중인 상태 Today I Learned 알고리즘 백준 2493번(링크) 문제 해석과 풀이 방식(X) 우선 타워의 번호와 index를 헷갈려선 안된다. 타워 번호는 1번부터 5번까지지만 리스트에 담을 때 index는 0부터 4이다. ...

2023년 7월 12일 · 7 분 · 배준수

레드 블랙 트리 이해하기

Red-Black Tree 개념 레드-블랙 트리. 이진 검색 트리의 한 종류이다. 그렇다면 트리는 뭔지, 이진 검색트리는 또 뭔지, 레드-블랙 트리는 어떤 특별한점이 있는지부터 알아보겠다. 자료구조(data structure) 개발자 공부를 하면서 수도 없이 들어봤을 자료구조. 지금 자료구조가 뭐냐고 묻는다면 나는 “list, set, deque, queue, stack 같은 것들처럼 데이터들이 어떤 형태와 관계로 들어있는지를 나타내는 것입니다.“라고 대답할 것 같다. 면접이라 생각하고 머릿속에 떠오르는걸 그대로 받아적었는데 생각보다 나쁘지 않은데? 그럼 정확한 정의부터 살펴보자. INTRODUCTION TO ALGORITHMS THIRD EDITION 책에는 ...

2023년 7월 12일 · 7 분 · 배준수

코드잇(CodeEat)

코드잇 코딩을 처음 접하는 어린이들을 위한 미니 게임 플랫폼. 코드잇 입니다. 📜포스터 ⚙️기능 🗺️메인 맵 디자인 : 기존 오피스를 위한 메타버스 오픈소스에서 메타버스의 색과 기능을 제거하고 유저를 위한 학교 맵으로 직접 제작하였습니다. 아바타 : 회원가입시 설정한 아바타로 맵 곳곳을 돌아다닐 수 있습니다. 🎮게임 오브젝트 : 게임 내 오브젝트와 상호작용을 통해 플레이할 수 있습니다. 3가지 게임 :3종류의 2인용 실시간 멀티플레이 게임을 구현하였습니다. ☔산성비 게임 떨어지는 영어 단어를 입력하여 점수를 획득합니다. 제한시간 내 높은 점수를 얻거나, 상대가 목숨을 모두 잃으면 승리합니다. 글자색으로 나타나는 아이템을 통해 상대의 화면을 가리거나 단어 추락 속도를 높일 수 있습니다. 실시간으로 상대방의 화면도 볼 수 있습니다. 아이들이 키보드 타자, 특히 영어 타자에 익숙해지도록 돕기 위한 게임입니다. 🔨두더지 게임 주어진 문제에 알맞은 정답을 들고 있는 두더지를 상대보다 먼저 클릭하는 게임입니다. 정답 유무는 효과음과 캐릭터의 반응을 통해 알 수 있습니다. 파이썬의 함수와 같은 기초 문제들이 출제됩니다. 📦자료구조 게임 문제가 제시하는 조건에 맞게 주어진 동물 배열을 정리하는 게임입니다. List, Set, Stack, Deque, Queue 중 하나를 선택하고 그에 맞는 오퍼레이션을 선택합니다. ‘같은 동물 2마리를 남겨라’ 라는 문제를 위해 Deque을 선택하여 pop(), popleft()등을 선택할 수 있습니다. set을 선택하면 중복되어 있는 원소들이 삭제되는 등 성질에 알맞게 구현하였습니다. 화면을 통해 상대가 입력하는 오퍼레이션과 현재 상황을 알 수 있습니다. 🧑🏻‍🤝‍🧑🏽유저간 교류 친구 : 친구 추가, 삭제, 목록 등 다양한 유저와 관계를 맺어나갈 수 있습니다. 동시접속자 : 현재 서비스에 들어와 있는 유저들을 확인할 수 있습니다. 프로필 : 내가 누군지 나타내고, 다른 사람의 정보를 확인할 수 있습니다. 메시지 : 어느 유저에게나 보낼 수 있으며, 개별 창에서 유저 별 최근 메시지와 안 읽은 메시지가 표시됩니다. 🕹️게임성 레벨 : 게임을 통해 경험치를 획득할 수 있습니다. 이기면 더 많이 얻고, 레벨이 높을수록 더 많이 필요합니다. 랭킹 : 가장 높은 레벨, 경험치를 기록하고 있는 상위 10명의 유저를 확인할 수 있습니다. 매치메이킹 : 현재 생성된 방 List를 확인할 수 있습니다. 친구와 하기 위해 비밀번호를 설정할 수 있습니다. 대기방 : 상대가 들어오면 방장이 게임을 시작할 수 있습니다. 💾레퍼런스 자료 설명 코드잇 포스터 A1 Size의 포스터로 요약한 프로젝트 내용입니다. 코드잇 깃허브 실제 코드를 확인할 수 있습니다. 코드잇 서비스 주소 서비스를 체험해볼 수 있습니다. 코드잇 발표 PPT 프로젝트 최종 발표 당시의 PPT입니다. 코드잇 발표 영상 프로젝트 최종 발표의 비디오 버전입니다. 🫱🏼‍🫲🏼팀소개 🐶배준수(BE) : https://github.com/importunate-dev ...

2023년 7월 11일 · 2 분 · 배준수

포트폴리오

2023년 7월 10일 · 0 분 · 배준수