분류 전체보기73 [알고리즘 특강 2일차] 시간복잡도의 응용 - (2-pointer, 슬라이딩 윈도우, 부분배열, 파라메틱 서치, 이분 검색) 알고리즘 특강을 들으면서 인상 깊었던 내용을 정리합니다. 자 세한 개념보다는 알고리즘의 '이해' 그리고 '활용'(팁)에 중점을 두었습니다. 내용이 이상하다면 지적해주시면 감사하겠습니다. 👍 안녕하세요 이 포스팅은 알고리즘 2일차로 시간복잡도 응용편입니다. 시간복잡도 줄이는 방법들 문제 풀이와 함께 아래와 같은 기법들을 배웠습니다. 어디선가 한번쯤 사용해보았지만 ‘의식'하고 풀지는 않았던거 같습니다. 문제를 푸는데 많은 도움이 되는 기법들이니 꼭 숙지하고 가야합니다. 투 포인터 기법 투 포인터 기법이란 ? 투 포인터는 연속되고 가변적인 부분 배열을 이용하여 특정 조건을 일치시키는 알고리즘 입니다. 즉, 정렬되어 있을 때 사용할 수 있습니다. 투 포인터 언제 사용하는데? 2-포인터 기법은 보통 두 데이터를 .. CS/알고리즘, 자료구조 2022. 7. 19. [알고리즘 특강 2일차] 시간복잡도의 이해 알고리즘 특강을 들으면서 인상 깊었던 내용을 정리합니다. 자세한 개념보다는 알고리즘의 '이해' 그리고 '활용'(팁)에 중점을 두었습니다. 내용이 이상하다면 지적해주시면 감사하겠습니다. 👍 안녕하세요 오늘은 알고리즘 2일차로 시간복잡도와 공간복잡도를 공부하겠습니다. 시간복잡도 (Time Complexity) 시간복잡도를 표기할 때는 보통 빅-오(Big-Oh) 표기법으로 최악의 경우 (Worst Case)의 연산 횟수를 나타냅니다. 이제는 문제를 풀을 때 구현은 기본이고 “시간복잡도"를 줄이는 훈련을 의식적으로 연습해야 합니다. 시간복잡도의 종류 상수형 (O(1)) 길이가 N인 배열에서 M번 째 배열값 출력 로그형 (O(logN)) N개의 정렬된 수열에서 이분탐색을 통해 특정 숫자를 탐색 우선순위 큐, 힙에.. CS/알고리즘, 자료구조 2022. 7. 19. [백준] 3005번 - 탈출 3055번: 탈출 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제 www.acmicpc.net 문제 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제일 친한 친구인 비버의 굴로 가능한 빨리 도망가 홍수를 피하려고 한다. 티떱숲의 지도는 R행 C열로 이루어져 있다. 비어있는 곳은 '.'로 표시되어 있고, 물이 차있는 지역은 '*', 돌은 'X'로 표시되어 있다. 비버의 굴은 'D'로, 고슴도치의 위치는 'S'로 나타내어져 있다. 매 .. PS/백준 2022. 7. 19. [백준] 1062번 - 가르침 1062번: 가르침 첫째 줄에 단어의 개수 N과 K가 주어진다. N은 50보다 작거나 같은 자연수이고, K는 26보다 작거나 같은 자연수 또는 0이다. 둘째 줄부터 N개의 줄에 남극 언어의 단어가 주어진다. 단어는 영어 소문 www.acmicpc.net 문제 남극에 사는 김지민 선생님은 학생들이 되도록이면 많은 단어를 읽을 수 있도록 하려고 한다. 그러나 지구온난화로 인해 얼음이 녹아서 곧 학교가 무너지기 때문에, 김지민은 K개의 글자를 가르칠 시간 밖에 없다. 김지민이 가르치고 난 후에는, 학생들은 그 K개의 글자로만 이루어진 단어만을 읽을 수 있다. 김지민은 어떤 K개의 글자를 가르쳐야 학생들이 읽을 수 있는 단어의 개수가 최대가 되는지 고민에 빠졌다. 남극언어의 모든 단어는 "anta"로 시작되고,.. PS/백준 2022. 7. 19. 2022년 07월 18일 (월요일) 일지 보호되어 있는 글 입니다. 2022. 7. 18. [알고리즘 특강 1일차] 알고리즘이란, 깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS)의 이해와 활용 알고리즘 특강을 들으면서 인상 깊었던 내용을 정리합니다. 자세한 개념보다는 알고리즘의 '이해' 그리고 '활용'(팁)에 중점을 두었습니다. 내용이 이상하다면 지적해주시면 감사하겠습니다. 👍 안녕하세요 오늘은 알고리즘 1일차로 DFS와 BFS를 공부하였습니다. 아직 알고리즘 초보자로 많은 고생을 하고 있었는데 아래 내용을 듣고 배우면서 너무 유익하다고 느껴 기록하고 공유하고 싶어서 포스팅 합니다 ! 먼저 알고리즘 이란 ? 알고리즘이란 뭘까요 ? 알고리즘은 수학자 알콰리즈미(Al-Khwarizmi)에서 유래했고 '문제를 해결하기 위한 여러 동작들의 모임'을 의미합니다. 먼저 알고리즘은 완전탐색이 시작입니다. 저희는 이런 알고리즘을 이용하기 위해서는 복잡한 구조의 코드를 정확하게 구현할 수 있어야 합니다. 물론.. CS/알고리즘, 자료구조 2022. 7. 18. 2022년 07월 17일 (일요일) 일지 보호되어 있는 글 입니다. 2022. 7. 18. [Java 스터디 두 번째] 클래스와 객체 자바 스터디를 진행하고 있습니다. 개인적으로 공부한 내용을 바탕으로 정리하고 있으며 이상한 부분은 댓글에 남겨주시면 감사하겠습니다. 먼저 앞에서 [자바] 배열에서 객체지향 개념이 나오기 전 데이터와 기능이 따로따로 존재했다는 것을 배웠었다. 객체 지향 개념이 나오면서 데이터와 그와 관련된 기능을 클래스로 묶어서 사용할 수 있게 되었다고 했었다. 아래에서 클래스와 객체에 대해서 더 자세히 알아보자. 1. 클래스와 객체 (객체지향이론 관점, 프로그래밍 관점) 🚀 클래스는 데이터와 그와 관련된 기능(메소드)을 가지고 있다. 그리고 클래스는 객체를 생성하는데 사용이 된다. 생성된 객체는 기능과 데이터(속성)을 가지고 있다. 주의해야 할 것은 객체는 가지고 있는 기능과 속성에 따라 다르는 것이다. 클래스는 결국 .. 프로그래밍 언어 공부/Java 기초 2022. 7. 17. [Java 스터디 첫 번째] 배열 자바 스터디를 진행하고 있습니다. 개인적으로 공부한 내용을 바탕으로 정리하고 있으며 이상한 부분은 댓글에 남겨주시면 감사하겠습니다. 👍 1-1.배열의 선언과 생성 1-1-2. 배열의 선언이란 ? 배열을 다루기 위하여 참조변수를 선언하는 것이다. 타입[] 변수이름; int[] arr; 1-1-3. 배열의 생성이란 ? 실제 메모리에 저장공간을 생성하기 위한 것 입니다. 배열을 생성하기 위해서는 연산자 new와 함께 배열의 타입과 길이를 지정해 주어야 합니다. 밑에는 배열 생성 예제입니다. 변수이름 = new 타입[길이]; arr = new int[4]; 이 두 가지 (선언, 생성)이 완료 됐을 때 배열에 값을 저장하거나 읽어올 수 있게 된다. 밑에 예제는 배열의 선언과 생성을 한 것이며 '길이가 5인 배열.. 프로그래밍 언어 공부/Java 기초 2022. 7. 17. 2022년 07월 16일 (토요일) 일지 보호되어 있는 글 입니다. 2022. 7. 16. 2022년 07월 15일 (금요일) 일지 보호되어 있는 글 입니다. 2022. 7. 15. 2022년 07월 14일 (목요일) 일지 보호되어 있는 글 입니다. 2022. 7. 14. 이전 1 2 3 4 5 6 7 다음 반응형