코딩

분류 : 큐, 시뮬레이션 초밥의 회전을 나머지연산을 이용하여 인덱싱을 간편하게 할 수 있습니다. 초기세팅 1. 0부터 k개의 초밥번호를 Q에 넣는다 (7,9,7,30) 2. 하나씩 넣으면서 (초밥종류배열[초밥[i]]==0) 이라면 cnt++ 한다. 3. 초밥종류배열[초밥[i]]++ 한다. 4. Max = cnt; 5. (초밥종류배열[쿠폰초밥] == 0) 이라면 max +1 한다 6. end = k-1 N번 반복 1. Dequeue한다(U). 초밥종류배열[U]-- 한다. 2. 초밥종류배열[U]==0 이라면 cnt--한다. 3. end = (end+1)%N //이부분이 중요 회전초밥 이므로 끝이라면 다시 앞으로 가야함. 4. 초밥종류배열[초밥[end]]==0 이라면 cnt++한다. 5. 초밥종류배열[초밥[e..

안녕하세요 오늘은 퀵소트에 대해 학습해보겠습니다. C언어에서 퀵소트는 라이브러리로 제공되기때문에 이용하여 정렬을 빠른 시간에 할 수 있습니다. 하지만 라이브러리의 제약이 있다면 직접 구현해야 하는경우도 발생합니다. 그리고 퀵소트를 사용하기전에 어떤 원리로 작동하는지 알면 좋겠죠? 퀵소트의 특징은 아래와 같습니다. 주어진 배열을 적당히 크기별로 분리 후 분할하고 이것을 재귀적으로 반복한다. 최악 평균 번의 비교를 수행한다. void quickSort(int data[], int l, int r) { int left = l; int right = r; int pivot = data[(l + r) / 2]; while (left pivot) right--; if (left left) { quickSort(da..

안녕하세요 오늘은 코딩교육에 대해 설명해드리겠습니다. 2018년부터 코딩교육이 의무화되면서 이슈가 되고있습니다. 현재 우리는 정보사회에 살고있습니다. 정보사회 중에서도 소프트웨어가 중점이되고있는 사회입니다. 미래의 먹거리이며 삶을 주도할 것 입니다. 미국의 주간뉴스에서는 모든 일에 소프트웨어 역량이 필요하다고 하였습니다. 모든일에 소프트웨어를 사용하기 때문에 소프트웨어를 다루는 역량이 필요하며 그것을 잘 이해하기 위해서는 코딩역량의 중요성을 이야기합니다. 마크앤드리슨은 넷스케이프 브라우저 개발자이며, 유명한 밴처 창업가이며 페이스북 트위터 인스타그램의 투자자입니다. 마크 앤드리슨 또한 소프트웨어가 세상을 먹어치우고 있다고 이야기합니다. 그럼 소프트웨어란 도대체 어떤 것 일까요?소프트웨어는 사람이 하고싶은..

분류 : 다이나믹프로그래밍 이 문제는 냅색의 기본이론과 다른 방식으로 테이블을 작성해야 합니다. 냅색의 기본이론은 가로축이 책가방의 크기(사용할 수 있는 전체 크기) 입니다. 그리고 테이블 속의 데이터는 취할 수 있는 이득입니다. 하지만 이문제에서 비용의 범위가 10,000,000이며 개수가 100개이므로 최대 10억 개의 데이터를 채워야 합니다. 시간복잡도와 공간복잡도를 고려한 접근이 필요합니다. 냅색은 가로축이 크기이고 내용이 얻는 비용입니다. 이것을 역으로 생각해서 가로축을 비용, 내용을 크기로 해봅시다. 그럼 어떤 비용에서 최대 크기를 구할 수 있습니다. 5 60 30 10 20 35 40 3 0 3 5 4 Input이 위와 같을 때 그럼 위와 같이 표를 채울 수 있습니다. 가장 아래쪽 라인에서 ..