본문 바로가기

CS/알고리즘 & 자료구조4

알고리즘 학습과 메모리 상관관계를 알아보자 ✔️ 알고리즘을 왜 해야할까…? 유진호 멘토님의 커리어 코칭(원티드 6기 인턴십)을 마치며 정리하는 시간을 가져보려고 합니다. 멘토님의 글을 많이 참고한터라 문제가 된다면 삭제할 예정입니다. 🎯 취업목적 요즘 같은 개발자 취업난 시대에 기업들은 좋은 개발자를 뽑기 위해서 코딩테스트를 한다. 기업에서는 감당하기 벅찰 정도로 지원자들이 몰리는 상황이다. 지원자들의 포토폴리오는 각 각 다르기 때문에 자동화 된 코딩 테스트 만큼 짧은 시간에 많은 지원자를 효과적으로 걸러낼 수 있는 방법이 현실적으로 없다고 한다. 좋든 싫든, 코딩 테스트는 현재 업계에서 관행처럼 굳어진 채용 과정 중 일부이기 때문에 개발자로서 코딩테스트를 피하는것이 어려운것이 현실이다. 🎯 시대가 바뀌어서 클라우드, 빅데이터, 인공지능, 블록체.. 2023. 10. 19.
빅오 표기법 (big-O notation)이란? ✔️빅오 표기법 (big-O notation)이란? 알고리즘의 성능을 분석, 비교하기 위한 개념 중 하나입니다. 보통 알고리즘의 시간 복잡도와 공간 복잡도를 예측에 사용 됩니다. 점근적 표현법 중 하나로, 일반적으로 상수와 계수를 제거하고 알고리즘의 복잡도를 단순화 하여 나타냅니다. 애매해 질 수도 있는 연산 횟수 계산법을 하나의 일관된 형식으로 만들어 줍니다. 알고리즘의 런 타임이 인풋의 증가에 따라서 어떻게 함께 증가 하는지에 대해 설명 할 수 있게 해줍니다. ✔️정리하면 빅오 표기법은 알고리즘의 직접적인 모든 연산 횟수를 계산하는것이 아닌, 인풋의 증가에 따른 연산 처리시간의 증가율을 예측하는 척도입니다. ✔️공간 복잡도(Space complexity)가 뭐지? 프로그램이 실행되고 완료되기까지 사용.. 2023. 10. 10.
[자료 구조] 자바 컬렉션(Collection)에 대해 알아보자 - Java ⏳ 들어가며 - 컬렉션(Collection)이란? 자바에서 컬렉션 프레임워크는 데이터를 저장,관리 및 조작하기 위한 자료구조의 집합을 말합니다. 컬렉션은 자바의 java.util 패키지에 포함되어 있습니다. ⏳ 자바 컬렉션 프레임워크 주요 인터페이스 컬렉션 인터페이스는 List, Queue, Set 3가지의 상위 인터페이스로 분류된다. Map은 컬렉션에 포함되지 않지만 Collecion으로 보통 분류하는 편입니다. ⏳ List 인터페이스 리스트는 순서가 있는 데이터의 집합으로, 데이터의 중복을 허용합니다. ArrayList - 데이터에 대한 인덱스를 가지고 있어 조회 기능에 성능이 뛰어납니다. - 가변크기의 배열로 구현되며 빈공간이 생기면 요소 위치가 자동 이동됩니다. - List 컬렉션을 여러 스레드에.. 2023. 8. 31.
알고리즘을 처음 시작하며, 정렬된 배열을 병합해보자 (LeetCode - 88) https://leetcode.com/problems/merge-sorted-array/?envType=study-plan-v2&envId=top-interview-150 ⏳ 문제 내림차순으로 정렬된 두 개의 정수 배열 nums1 과 nums2가 주어지며, 각각 nums1과 nums2에 있는 요소의 수를 나타내는 두 개의 정수 m과n이 주어진다. nums1과 nums2를 오름차순으로 정렬된 단일 배열로 병합한다. 최종 정렬된 배열은 함수에 의해 반환되지 않고 nums1 배열 안에 저장되어야 한다. 이를 위해 nums1의 길이는 m + n 이며, 첫 번 째 m 요소는 병합해야 하는 요소를 나타내고 마지막 n요소는 0으로 설정되어 무시해야 한다. nums2의 길이는 n 이다. ⏳ 풀이 class Soluti.. 2023. 8. 24.