CS+PS/Algorithm14 [C++] 배열 (feat. 바킹독) 배열의 성질 O(1)에 k번째 원소를 확인/변경 가능 추가적으로 소모되는 메모리의 양(오버헤드)가 거의 없음 cache hit rate가 높음 메모리 상에 연속한 구간을 잡아야 해서 할당에 제약이 걸림 시간 복잡도 임의의 위치에 있는 원소를 확인/변경 : O(1) 원소를 끝에 추가/제거 : O(1) 임의의 위치에 원소를 추가/제거 : O(N) 실제로 임의의 위치에 원소를 추가/제거하는 함수를 작성해보자 void insert(int idx, int num, int arr[], int& len){ len++; int tmp; for(int i=len; i>idx; i--){ //맨 끝에서부터 반복문 arr[i] = arr[i-1]; } arr[idx]=num; } void erase(int idx, int .. 2023. 9. 13. [알고리즘]구현 머릿속에 있는 알고리즘을 정확하고 빠르게 프로그램으로 작성하기 구현 하기 까다로운 문제 알고리즘은 간단한데 코드가 지나칠 만큼 길어지는 문제 특정 소수점 자리까지 출력해야하는 문제 문자열이 입력으로 주어졌을 때 한 문자 단위로 끊어서 리스트에 넣어야하는(파싱을 해야 하는) 문제 등 알고리즘 중 "구현"은 어떻게 풀면 될지 대략 감은 오는데, 막상 코드로 옮기려니 무엇부터 작성해야 할지 모를 수 있다.. 또한 프로그래밍 문법을 정확하게 숙지하지 못했거나, 라이브러리 사용 경험이 부족하면 구현 유형의 문제를 풀 때 불리하다. 예를 들어, 파이썬으로 코테를 보는데 N개의 원소가 들어 있는 리스트에서 R개의 원소를 뽑아 한줄로 세우는 경우(순열)을 구해야 하는 문제를 만나면 어떻게 할것인가?? 무작정 기능을 전.. 2023. 9. 13. [알고리즘]그리디 현재 상황에서 가장 좋아 보이는 것만을 선택하는 알고리즘 🧤 그리디(탐욕법)이란? ⇒ 나머지 경우의 수를 다 제쳐두고 가장 최선의 방법 한개만 파고 들어서 문제를 푸는 방법이다. 예를 들면 최소동전 문제가 있다. (ex. 동전으로 1400을 만들때 동전을 가장 적게 쓰는 경우의 수 찾기) ⇒ 매 순간 가장 좋아보이는 방법을 선택하며, 현재의 선택이 나중에 미칠 영향에 대해서는 고려하지 않는다. 💡 그리디문제는 이 문제가 그리디인가? 반례가 있는것은 아닐까? 라는 고민하는 것이 가장 어렵다고 한다. 그래서 끊임없이 이 문제를 그리디로 풀 수 있는지, 반례가 있을지 없을지 고민하는것이 정상이라고 한다. 그리디 알고리즘 문제는 자주 정렬 알고리즘과 짝을 이뤄 출제된다. 대표적인 문제 유형이 "거스름돈을 동전으.. 2023. 9. 11. [브루트포스][백준]1018-체스판 다시 칠하기 체스판 다시 칠하기 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 128 MB 103387 51258 41039 49.647% 문제 지민이는 자신의 저택에서 MN개의 단위 정사각형으로 나누어져 있는 M×N 크기의 보드를 찾았다. 어떤 정사각형은 검은색으로 칠해져 있고, 나머지는 흰색으로 칠해져 있다. 지민이는 이 보드를 잘라서 8×8 크기의 체스판으로 만들려고 한다. 체스판은 검은색과 흰색이 번갈아서 칠해져 있어야 한다. 구체적으로, 각 칸이 검은색과 흰색 중 하나로 색칠되어 있고, 변을 공유하는 두 개의 사각형은 다른 색으로 칠해져 있어야 한다. 따라서 이 정의를 따르면 체스판을 색칠하는 경우는 두 가지뿐이다. 하나는 맨 왼쪽 위 칸이 흰색인 경우, 하나는 검은색인 경우이다. 보드가 체스판처럼 .. 2023. 9. 10. [DP][백준] 9095 - 1, 2, 3 더하기 + DP 에 대해서 생각해보기... dp 문제는 구현에서 애를 먹지 않는다. 그럼 dp에서 중요한 부분은 무엇이냐... 바로 아이디어와 발상이다! 그리고 제일 중요한 부분은 이 문제가 DP 문제인지 알아 차리는 것이다!!! 요즘 dp 문제를 중점적으로 풀어보고 있는데, 앞의 항과 뒤에 항의 연관성이 있는지 살펴보고 연관성이 있으면 dp문제라고 거즌 생각하고 푼다! 이렇게 앞의 항과 뒤의 항 사이에 연관성이 있는것을 점화식이 있다! 라고 나는 표현한다. 동적계획법(DP)은 문제를 쪼개서 작은 문제의 답을 구하고, 그걸로 더 큰 문제의 답을 구하는것을 반복하는 분할정복과 비슷하다고 생각한다. 이 문제가 DP 문제라는것을 알아챈 이후에는, 이 문제의 점화식을 찾고 구현해내면된다! 구현 방법으로는 두가지가 있다. Top-down : 재귀(함수)를.. 2023. 7. 31. 예외처리 2023. 7. 3. 이전 1 2 3 다음