본문 바로가기

CS & 알고리즘

(11)
정렬 알고리즘 완전 정복 - O(N²)부터 O(N log N)까지, 정렬 알고리즘 비교 📌 1. 정렬이란? 왜 중요한가?정렬이 필요한 이유 (예시: 탐색 최적화, 데이터 처리)실제 활용 예시: 데이터베이스 인덱싱, 코딩 테스트, AI 데이터 전처리📌 2. 정렬 알고리즘 분류유형정렬 알고리즘시간복잡도특징O(N²) (기본 정렬)버블 정렬, 선택 정렬, 삽입 정렬O(N²)느림, 기초 개념 익히기 좋음O(N log N) (고급 정렬)퀵 정렬, 병합 정렬, 힙 정렬O(N log N)실전에서 많이 사용O(N) (특수 정렬)카운팅 정렬, 기수 정렬, 버킷 정렬O(N)특정 조건에서만 사용 가능📌 3. 기본 정렬 알고리즘 (O(N²))✅ 3-1. 버블 정렬 (Bubble Sort)개념: 인접한 두 원소를 비교하여 교환하는 방식시간복잡도: O(N²)특징: 구현은 쉽지만 비효율적Java 구현 예제publ..
알고리즘 3개월 마스터 플랜 - 1일차 https://sober-developer.tistory.com/89 알고리즘 공부 시작하기 - 3개월 알고리즘 마스터 플랜계기사실 계기도 많았고 시도도 많았다.알고리즘 공부는 항상 해왔지만 '돌아간다 신난다'의 안 좋은 습관이 있었고 슬프게도 내가 그걸 너무 재밌어해서 계속 고치고 싶지 않았다.하지만 이정sober-developer.tistory.com 알고리즘 공부 '제대로' 시작하기 1일차! 1주차 포스팅은 여기!https://sober-developer.tistory.com/90 알고리즘 3주 마스터 플랜 1주차✅ 1주차 계획 (정렬 & 완전 탐색)📅 목표 기간: 수요일 ~ 일요일 (5일)🎯 목표: 정렬 & 완전 탐색 개념 정리 문제 풀이 전 접근법 작성 & 반례 테스트 5문제 풀이 & 블로그..
[백준] 수 정렬하기 (2750) - Java 자바 https://www.acmicpc.net/problem/2750 이전에 이미 풀었던 문제지만, https://sober-developer.tistory.com/90 알고리즘 3주 마스터 플랜 1주차✅ 1주차 계획 (정렬 & 완전 탐색)📅 목표 기간: 수요일 ~ 일요일 (5일)🎯 목표: 정렬 & 완전 탐색 개념 정리 문제 풀이 전 접근법 작성 & 반례 테스트 5문제 풀이 & 블로그 정리 (2문제 이상) 📌 1주sober-developer.tistory.com 차근차근 푸는 연습을 위해 다시 풀어보겠다. 수 정렬하기 시간 제한메모리 제한제출정답맞힌 사람정답 비율1 초128 MB2312481330539112958.261%문제N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.입력..
알고리즘 3개월 마스터 플랜 1주차 ✅ 1주차 계획 (정렬 & 완전 탐색)📅 목표 기간: 수요일 ~ 일요일 (5일)🎯 목표: 정렬 & 완전 탐색 개념 정리 문제 풀이 전 접근법 작성 & 반례 테스트 5문제 풀이 & 블로그 정리 (2문제 이상) 📌 1주차 학습 개념정렬 알고리즘 버블 정렬, 선택 정렬, 삽입 정렬 (기본)퀵 정렬, 병합 정렬 (고급)라이브러리 정렬 활용 (Arrays.sort, sorted) 정렬 응용 (좌표 정렬, 문자열 정렬, 커스텀 정렬) 완전 탐색 (Brute Force)모든 경우의 수 탐색 (순열, 조합)비효율적인 풀이 방식과 시간복잡도 고려 백트래킹을 사용하지 않는 기본적인 완전 탐색 문제 📌 추천 문제 (정렬 & 완전 탐색)문제 유형난이도문제 링크기본 정렬실버 4백준 2750 - 수 정렬하..
알고리즘 공부 시작하기 - 3개월 알고리즘 마스터 플랜 계기사실 계기도 많았고 시도도 많았다.알고리즘 공부는 항상 해왔지만 '돌아간다 신난다'의 안 좋은 습관이 있었고 슬프게도 내가 그걸 너무 재밌어해서 계속 고치고 싶지 않았다.하지만 이정도면 땡깡은 피울대로 피웠고, 난 훌륭한 개발자가 되어야 하니까 이젠 정신을 차릴 시기가 지나도 한참 지나버렸다.어르신께 이 상황을 말씀드리고 어떻게 하면 좋을지 조언을 구해봤다.어르신의 조언을 바탕으로 정리해보았다.목표지금까지는 감으로 풀었다면 이제는 이론을 확실히 익히고 전략적으로 접근하는 방식으로 바꾸는 것이 목표원칙1. 문제 풀이 방식 바꾸기✅ 1단계: 문제 읽기 전 먼저 개념 확인문제를 보고 바로 코드 작성 금지. 관련된 이론/유형을 먼저 떠올려 보기 (예: DFS/BFS 문제라면 탐색 방식과 시간 복잡도 고려)..
[CS 전공지식 노트] 2장 네트워크 2.1 네트워크의 기초 네트워크 (Network) 컴퓨터 등의 장치들이 통신 기술을 이용하여 구축하는 연결망을 지칭하는 용어. 2.1 네트워크의 기초 네트워크란? 노드(node)와 링크(link)가 서로 연결되어 있으며 리소스를 공유하는 집합을 의미 노드란? 서버, 라우터, 스위치 등 네트워크 장치 링크란? 유선 또는 무선 2.1.1 처리량과 지연 시간 좋은 네트워크란? 많은 처리량을 처리 가능 지연 시간이 짧음 장애 빈도가 적음 좋은 보안을 갖춤 처리량이란? 링크를 통해 전달되는 단위 시간 당 데이터양 단위: bps(bits per second); 초당 전송 또는 수신되는 비트 수 처리량에 영향을 주는 요소들 트래픽(사용자들이 많이 접속할 때마다 커짐) 네트워크 장치 간의 대역폭 (주어지는 시간 동안 네트워크 연결을 통해 흐..
[객체지향프로그래밍] 설계 원칙 - SOLID 원칙 SOLID 원칙 S - SRP(Single Responsibility Principle, 단일 책임 원칙) 모든 클래스는 각각 하나의 책임만 가져야 한다. 예를 들어 A라는 로직이 존재한다면 어떠한 클래스는 A에 관한 클래스여야 하고 이를 수정한다고 했을 때도 A에 관련된 수정이어야 한다.O - OCP(Open Closed Principle, 개방-폐쇄 원칙) 유지 보수 사항이 생긴다면 코드를 쉽게 확장할 수 있도록 하고 수정할 때는 닫혀 있어야 한다. 즉, 기존의 코드는 잘 변경하지 않으면서도 확장은 쉽게 할 수 있어야 한다.L - LSP(Liskov Substitution Principle, 리스코프 치환 원칙) 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 ..
[알고리즘] 순열(Permutation) 계기 SSAFY 교육 정리 순열(Permutation) 서로 다른 것들 중 몇 개를 뽑아서 한 줄로 나열하는 것 서로 다른 n개 중 r개를 택하는 순열은 아래와 같이 표현한다. 그리고 nPr은 다음과 같은 식이 성립한다 nPn = n!이라고 표기하며 Factorial이라 부른다. 다수의 알고리즘 문제들은 순서화된 요소들의 집합에서 최선의 방법을 찾는 것과 관련 있다. 예> TSP(Traveling Salesperson Problem, 외판원 순회) N개의 요소들에 대해서 n!개의 순열들이 존재한다. 12! = 479,001,600 n > 12 인 경우, 시간 복잡도 폭발적으로 ↑ 단순하게 순열을 생성하는 방법 예) {1, 2, 3}을 포함하는 모든 순열을 생성하는 함수 동일한 숫자가 포함되지 않았을 때,..