[알고리즘] 14

[바킹독 실전 알고리즘] 강의 노트_0x05강 스택~0x08강 스택의 활용

바킹독 실전 알고리즘 강의를 듣게 되어서 강의 필기를 할겸 정리용으로 글 씁니다. 문제시 삭제 하겠습니다.   제한된 자료구조 : 스택, 큐, 덱 0x05강 스택스택: FILO(first in last out) ex) 엘리베이터  스택의 성질1. 원소의 추가가 O(1)2. 원소의 제거가  O(1)3. 제일 상단의 원소 확인이 O(1)4. 제일 상단이 아닌 나머지 원소들의 확인/변경이 원칙적으로 불가능. -> 만들 수는 있음.  1. 배열을 이용해 구현하는 것이 편함. const int MX= 100005;int dat[MX];int pos=0;  push,pop 함수  값 추가 (push) : pos++값 삭제 (pop) : pos--  2.STL stack ⚠️스택이 비어 있을 때 pop(), top(..

[바킹독 실전 알고리즘] 강의 노트 _ 0x03강 배열~0x04강 연결 리스트

바킹독 실전 알고리즘 강의를 듣게 되어서 강의 필기를 할겸 정리용으로 글 씁니다. 문제시 삭제 하겠습니다. 0x03강 배열=> 배열은 데이터를 자주 바꾸지 않고 쌓아두고 싶을 때 사용함. 1. 연속적인 자료구조 -> k번재째 원소를 확인/변경할때 O(1)만에 가능.2. 추가적으로 소모되는 메모리 양이 거의 없음3. 메모리가 붙어 있어서-> Cache hit rate가 높음.4.메모리 상에 연속한 구간을 잡아야 해서  ->할당에 제약이 걸림.   임의의 위치에 있는 원소를 확인 변경: O(1)원소를 끝에 추가 :O(1)마지막 원소를 삭제 : O(1)임의의 위치에 원소를 추가: O(n)임의의 위치에 원소를 삭제 : O(n)추가/삭제 함수 직접 구현#include using namespace std;void ..

[codetree] 프로그래밍 연습_변수의 영역

안녕하세요. 우당탕탕 개발일지 입니다. 꾸준히 문제 풀기 다시 시작해보겠습니다. codetree가 마음에 들어 순서대로 풀 것 같습니다. 아자아자 화이팅! 지역 변수: 블록 내에서 선언되어  블록 안에서만 사용 가능.전역 변수 : 코드 전체에서 사용가능.  __함수를 이용한 부분 문자열의 위치 구하기__ int k의 위치 때문에 계속 에러가 났습니다. k가 찾는 문자열의 길이와 일치하지 않으묜 k를 다시 0으로 초기화 시킨후 동작해야 합니다. #include #includeusing namespace std;string s;string finds;int func() { for (int i = 0; i > s >> finds; cout  지역 변수와 전역 변수를 완전히 안다고 생각 했는데 이번 ..

[바킹독 실전 알고리즘] 강의 노트 _ 0x00강~0x02강

바킹독 실전 알고리즘 강의를 듣게 되어서 강의 필기를 할겸 정리용으로 글 씁니다. 0x00강 대상 : c/c++언어를 알고 있지만 자료구조/알고리즘은 약한 사람.목표: 삼성 SW test A형과 B형 중간 수준의 코딩 테스트.  강의: 총 32강 (2~4달 정도 소요) 코딩 테스트: 시간 제한,메모리 제한 안에서 문제를 해결하는 시험.-> 어떤 테이스 케이스에서 오답인지 알려주지 않음. 사이트 추천: SW Expert Academy  배경지식: 다양한 알고리즘, 자료구조, 기타테크닉.문제 해결 능력: 배경지식을 문제에 맞게 변형해서 적용 시키는 능력.구현력: 생각한 풀이를 코드에 잘 옮길 수 있는 능력. 0x01강 기초 코드 작성 요령1 1) 시간, 공간 복잡도. 시간복잡도: 입력의 크기와 문제를 해결하..

[codetree] 프로그래밍 연습_ call by value/ call by reference (메모리 초과 해결)

안녕하세요. 우당탕탕 개발일지 입니다. 꾸준히 문제 풀기 다시 시작해보겠습니다. codetree가 마음에 들어 순서대로 풀 것 같습니다. 아자아자 화이팅!1.함수2. 재귀함수3. 정렬4. 시뮬레이션1,25. 완전 탐색 1,2,36.케이스별로 나누기7.Ad-Hoc  __짝수만 2로 나누기__#include using namespace std;void func(int *a,int x){ a[x]=a[x]/2; }int main() { // 여기에 코드를 작성해주세요. int N; cin>>N; int arr[100]; for(int i=0; i>arr[i]; } for(int j=0; j   __문자열을 인자로 받는 함수__ !!! 메모리 초과 발생!!..

[codetree] 프로그래밍 연습_ 값을 반환하지 않는 함수 (예제+실력문제)

안녕하세요. 우당탕탕 개발일지 입니다. 꾸준히 문제 풀기 다시 시작해보겠습니다. codetree가 마음에 들어 순서대로 풀 것 같습니다. 아자아자 화이팅!  1.함수2. 재귀함수3. 정렬4. 시뮬레이션1,25. 완전 탐색 1,2,36.케이스별로 나누기7.Ad-Hoc  __조건에 따라 "Yes" 또는 "No" 반환__ 반환 타입: string일의 자리수 구하기 : n%10십의 자리수 구하기: n/10#include #includeusing namespace std;string func(int a){ if(a%2==0||a%4==0||a%6==0||a%8==0) { if(((a/10)+a%10)%5==0) { ..

[codetree] 프로그래밍 연습_ 값을 반환하지 않는 함수

안녕하세요. 우당탕탕 개발일지 입니다. 꾸준히 문제 풀기 다시 시작해보겠습니다. codetree가 마음에 들어 순서대로 풀 것 같습니다. 아자아자 화이팅! 1.함수2. 재귀함수3. 정렬4. 시뮬레이션1,25. 완전 탐색 1,2,36.케이스별로 나누기7.Ad-Hoc __최소 공약수 구하기__ #include using namespace std;void func(int a, int b){ int tmp; while (b != 0) { tmp = a % b; a = b; b = tmp; } cout>n>>m; func(n, m); return 0;}   __최대 공배수 구하기__ (a*b) /최소 공약수= 최대 공배수#include us..

[CodeUp/C++] Codeup 기초 100제 후기

안녕하세요. 우당탕탕 개발일지입니다. 1학기 학기 중 시작했던 codeup 기초 100 제도 오늘 부로 끝을 맺게 되었습니다. 별일 아니지만 꾸준히 해온 소감을 기록해보려고 합니다.   1. codeup 시작 계기  외부 활동에서 코딩테스트를 보는 곳이 있어 코딩 테스트를 준비해야겠구나 생각을 했습니다. 마침 2학년 1학기 과목으로 자료구조를 배우고 있던 때라 "지금이구나!" 하고 호기롭게 시작했습니다.     2. 알고리즘을 codeup 기초 100 제로 시작한 이유 codeup 기초 100제는 학교 선배의 추천을 받아 시작했습니다. 시작할 때 백준, 프로그래머스, 코드업 등 어느 사이트를 할지 고민이 많았는데 추천해 주신 선배에게 감사하다고 말하고 싶습니다. 저는 성격상 처음이 어려우면 쉽게 질려하는..

[CodeUp/C++] 1092번 함께 문제 푸는 날

안녕하세요. 우당탕탕 개발일지입니다.  외부 활동에서 코딩테스트를 보는 곳이 있어 준비를 시작하게 되었습니다. 처음 풀어 보는 거라 CodeUp에 기초 100제를 먼저 풀고 있습니다. 꾸준하게 매일매일 푸는 걸 목표로 하고 있습니다! 문제 1092번  같은 날 동시에 가입한 3명의 사람들이 온라인 채점시스템에 들어와 문제를 푸는 날짜가매우 규칙적이라고 할 때, 다시 모두 함께 문제를 풀게 되는 그날은 언제일까?예를 들어 3명이 같은 날 가입/등업 하고, 각각 3일마다, 7일마다, 9일마다한 번씩 들어온다면, 처음 가입하고 63일 만에 다시 3명이 함께 문제를 풀게 된다. 더보기입력: 3 7 9출력: 63   해답 1092번 #includeusing namespace std;int main(){ ..

[CodeUp/C++] 1084번 빛 섞어 색 만들기

안녕하세요. 우당탕탕 개발일지입니다.  외부 활동에서 코딩테스트를 보는 곳이 있어 준비를 시작하게 되었습니다. 처음 풀어 보는 거라 CodeUp에 기초 100제를 먼저 풀고 있습니다. 꾸준하게 매일매일 푸는 걸 목표로 하고 있습니다!  시간초과!시간초과!!시간초과!!! 이번문제는 시간초과로 계속 헤매다가 풀리자마자 블로그 쓰려고 달려왔습니다. 문제 1084번 빨강(red), 초록(green), 파랑(blue) 빛을 섞어여러 가지 빛의 색을 만들어 내려고 한다.빨강(r), 초록(g), 파랑(b) 각각의 빛의 개수가 주어질 때,(빛의 강약에 따라 0 ~ n-1까지 n가지의 빛 색깔을 만들 수 있다.)주어진 rgb 빛들을 다르게 섞어 만들 수 있는 모든 경우의 조합(r g b)과총 가짓수를 계산해 보자. 입력..

728x90