왜 이직? 아무래도 가장 큰 이유는 다니고 있던 회사가 꿈에 그리던 회사가 아니었기 때문이다. 중견 기업의 자회사에 첫 취직하여 워라벨도 만족하고, 주변 사람들, 상사분들 모두 좋은 분들이었으나, 연봉이 더 오르기를 바랐고, 사람들이 이름을 들었을 때 아는 회사에 다니고 싶었고, 다른 회사는 어떻게 일을 하며, 회사별로 어떤 차이점들이 있고, 기존 사용하던 기술과 다른 기술을 사용해보고 싶었다. 다니고 있던 회사가 다닐만하다고 생각해서 3년이고 5년이고 쭉 있다보면 정체될 것이라고 생각했기 때문에 이직을 결심하게 되었다. 목표하는 회사는? 첫 회사에서 사실 풍부한 경험을 쌓지는 못했고, 재직 중 쉴틈없이 공부를 성실하게 했다고 볼 수 없었기에 흔히 말하는 최상위 IT회사인 네카라쿠배당토급 회사는 갈 수 ..
사전 지식 -빅오 표기법 -가장 기본적인 시간 복잡도 계산 방법 -정렬 알고리즘 지식(버블 정렬~퀵 정렬, 병합 정렬 등) -자료구조(리스트, 스택, 힙 등) -그외 여러 알고리즘 기법들에 대해 구현은 못 해도 개념은 알고 있는 정도(Brute-force 등) 알고리즘 종류 이전에 들었던 알고리즘 강의의 선생님께서는 실제 대기업 문제 출제 경험까지 있으신 분이었습니다. 그분의 말씀으로는, 단 4개의 알고리즘 기법을 제대로 알고 있으면 대회 수준이 아닌 코딩 테스트 기준으로는 모든 기업에서 출제되는 문제를 풀 수 있다고 말씀하셨습니다. 저 또한 그렇게 배웠기 때문에 4개의 알고리즘에 대해서만 정리하는 글을 작성해 보겠습니다. 링크를 통해 알고리즘을 학습해 주시기를 바랍니다. 최대한 이해하시기 쉽도록 노력하..
링크 https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 (자세한 내용은 링크에 있는 문제를 참고하세요. 저는 풀이에 필요한 설명만 다룹니다.) 아래와 같은 문자열이 주어진다고 가정하자. [1, 2, 1, 3, 1, 4, 1, 2] 만약 절반을 자른다면 배열은 다음과 같이 두 배열로 나올 것이다. a = [1, 2, 1, 3] b = [1, 4, 1, 2] a배열에 서로 다른 숫자는 1, 2, 3로 3개이며, b배열에 서로 다른 숫자는..
문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/135807 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 지문이 적지는 않네요. 프로그래머스에서는 영희와 철수라고 했지만, 편의상 간단하게 말씀드리자면 "배열 a, b가 있고, 특정 값(정수) c가 있을 때, a의 모든 값을 c로 나눌 수 있으며, b의 모든 값을 c로 나눌 수 없는 c의 최댓값 또는 그 반대의 값을 찾아라"입니다. 예를 들어볼게요. a = [3, 6, 9] b = [4, 10] 이 상황에서 특정 값을 3으로 둔다..
들어가며 이분 탐색을 공부하신다면 알고리즘의 기초적인 부분은 알고 있으시다고 가정하겠습니다(참고로 '이진 탐색 = 이분 탐색'입니다). 빅오 표기법과 버블 정렬을 모르는데 이분 탐색을 공부할 이유는 없으니까요. 이 글은 알고리즘의 가장 기초부터 알려드리는 글이 아니며, 곧 적을 아래의 사전 지식들을 완벽하게는 아니지만 알고 있다고 가정합니다. 알고리즘의 기초 개념부터 천천히 말씀드리는 것이 아닌, 이미 지식은 있지만 코딩 테스트 문제를 막상 잘 풀지 못하는 분이 코딩 테스트에 합격하기 위한 글입니다. 이진 탐색을 배우기 위해 필요한 사전 지식은 다음과 같습니다. 사전 지식 -빅오 표기법 -가장 기본적인 시간 복잡도 계산 방법 -정렬 알고리즘 지식(버블 정렬~퀵 정렬, 병합 정렬 등, 퀵/병합 정렬 구현은..