알고리즘 공부기록
-
알고리즘 6일차알고리즘 공부기록 2024. 8. 29. 23:42
알고리즘 입력 처리 출력 자료구조란어떻게 하면 저장 하려는 데이터를 적은 메모리를 사용해서 효율적으로 저장 할 수 있고 관리 할 수 있는지 결정 할 수 있는 지에 대해 결정 할 수 있는 거라고 할 수 있다. 어떠한 자료구조를 선택 하는 건 중요한 문제라고 할 수 있다. 그러기 위해선 각 자료구조에 대해서 장점과 단점을 알고 있어야 한다. 선형구조 (순차적인 순서를 가지는 것)배열 (Array)장점: 배열은 C#에서 System.Array 클래스로 구현되며, 배열의 각 요소는 인덱스로 접근이 가능하다. 이는 랜덤 액세스가 가능하다는 장점이 있다. 바로접근단점: 배열의 크기가 고정되어 있어 크기를 변경할 수 없고, 요소를 삭제할 때 다른 요소들을 이동시켜야 한다. 연결 리스트 (Linked List)단일..
-
알고리즘 5일차알고리즘 공부기록 2024. 8. 28. 02:22
바킹독 유튜브를 통해서 강의를 보려고 했는데 C++이였다. 튜터님께서 C++도 읽을 줄 알아야 한다고 말씀 해주셨다. 나즁에 C++도 공부 해야겠다. 일단 이렇게 된 이상 다른 것도 한 번 알아봐야겠다. https://www.youtube.com/watch?v=3kzR12vUXzM&list=PLMEHjJAUne9bcmYYkIyKsIVbHUHbB27v1 과거 매니저님께서 추천 해준 유튜브 사이트가 있었다. 일단 요거 보고 인프런 강의도 봐야겠다.이거 보려고 했는데 인프런 강의 사이트에서 보기 편한 게 많은 것 같았다. 그래서 회원가입부터 바로 해준다. 그 다음에 https://www.inflearn.com/course/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B8%B0%..
-
24년 8월 26일 알고리즘 4일차알고리즘 공부기록 2024. 8. 26. 22:46
탐색 알고리즘탐색 알고리즘은 주어진 데이터 집합에서 특정 항목을 찾는 방법을 말한다. 가장 일반적인 탐색 알고리즘으로 선형 탐색과 이진 탐색이 있다. 선형 탐색가장 단순한 탐색 알고리즘이다. 배열의 각 요소를 하나씩 차례대로 검사하여 원하는 항목을 찾는 것이다.시간복잡도 : 최악의 경우 O(n) 구현 예제int SequentialSearch(int[] arr, int target) { for (int i = 0; i { if (arr[i] == target) { return i; } } return -1; }배열의 처음부터 끝까지 하나씩 비교하여 검색하는 알고리즘배열이 정렬되어 있지 않을 경우 사용배열 갯수만큼 ..
-
24년 8월 25일 알고리즘 공부 3일차알고리즘 공부기록 2024. 8. 25. 21:03
스파르타에서 제공 해주는 알고리즘 강의가 있었다. ㅎㅎ.. 알고 있었지만 그 때 당시에는 대체 무슨 소리일까 하고 안 봤었는데 지금 다시 보니 많이 도움이 된 것 같다. Big O 표기법 :알고리즘의 효율성을 나타내는 표기법. 얼마나 많은 시간이나 공간을 필요로 하는지 설명. Big O 표기법은 알고리즘의 최악의 경우 성능을 나타내므로 알고리즘의 효율성을 과장 하지 않는다. 빅오 표기법 계산 방법 : 1. 상수는 버린다. 빅오 표기법을 할 때는 몇 번을 계산 하는지는 실질적으로 입력이 천 번이 되고, 만 번이 되고 한다면 상수값은 크게 중요하지 않다고 한다. 그래서 +1을 하든 +10을 하든 상수값은 버린다. 2. 최고차수 항목만 남긴다. 빅오 표기법에서는 가장 빠르게 증가하는 항목에 초점을 맞춘..
-
24년 8월 24일 알고리즘 2일차알고리즘 공부기록 2024. 8. 25. 00:54
아아. 오늘 잠시 사회란 곳을 다녀와서 시간을 낭비했군. 하지만 내 마음 속은 항상 알고리즘이였다고, 그러면 시간복잡도 계산 하는 방법을 알아볼까 ==하하 시간복잡도에 대해서 알아보려 했지만 이거이거 날 새겠는걸? 문제 한 개 풀고 오늘은 자야겠다. 문제: 배열의 회전설명: 주어진 정수 배열을 오른쪽으로 k번 회전시키는 함수를 작성하세요. 배열의 회전은 배열의 마지막 요소를 배열의 첫 번째 위치로 이동시키고, 나머지 요소들을 한 칸씩 뒤로 밀어내는 방식으로 이루어집니다.입력:정수 배열 nums (예: [1, 2, 3, 4, 5, 6, 7])정수 k (예: 3)출력:배열을 k번 회전시킨 후의 배열 (예: [5, 6, 7, 1, 2, 3, 4])예시:입력: nums = [1, 2, 3, 4, 5, 6, ..
-
24년 8월 23일 알고리즘 공부 시작알고리즘 공부기록 2024. 8. 23. 23:40
https://www.youtube.com/watch?v=O9aQXFTbCDY 이제 다시 시작이다. 알고리즘부터 부숴보도록 한다. 튜터님께서 나에게 플레티넘을 찍으라는 명령을 주셨다. 먼저 알고리즘이란 무엇일까. 바로 선생 GPT에게 물어본다. 알고리즘이란어떤 문제를 해결하기 위한 단계적 절차라고 한다. 쉽게 말해서 어떠한 일을 효율적으로 처리하기 위해 필요한 지침서 같은 거라고 한다. 알고리즘 문제풀이란 것은 주어진 문제를 해결 하기 위해 적절한 알고리즘을 설계하고, 이를 코드로 구현하는 과정을 말하는 것이었다. 뭐야 지금까지 한 거였잖아?? 코딩테스트 문제는 보통 특정한 상황이나 문제를 제시하고, 그 문제를 효율적으로 해결 할 수 있는 프로그램을 작성 하도록 요구한다. 그래서 시간복잡도? 그..