일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- mmdetection
- 공부
- 강좌
- 철학
- 알고리즘
- 2021
- it
- 자작시
- python 강좌
- 자살
- dp
- 파이썬 강좌
- dynamic programming
- 강의
- 파이썬 강의
- 백준
- BOJ
- 라즈베리파이 모니터
- mmcv
- 프로그래밍
- python
- 다이나믹프로그래밍
- C++
- 2020
- 파이썬
- 2024
- python 강의
- 인생
- 슬픔
- 계획
- Today
- Total
목록
프로그래밍
(11)
반응형
Stargazer

문제: 접근: 그냥 하나씩 접근해서 비교하여 푸는 방식으로 하면, 시간내로 풀지 못한다. 따라서 점화식을 이용해서 풀면 된다. 즉, DP로 풀면 시간내로 풀린다. 전략: 시간을 최소로 사용해야하기 때문에 데이터를 메모라이징하여서 저장한다. 점화식은 구간 [i,j] 가 있을때, i==j(구간길이 1)이면 true, 구간길이가 2일때, 입력데이터 input[i] == input[j] 가 같으면 true 아니면 false로 저장하고, 나머지 구간은 dp[i,j] = dp[i+1, j-1] && input[i] == input[j] 이면 된다. (이전 데이터를 이용해서, 양옆 한번만 비교하면 된다.) 코드: #include #include using namespace std; int n,m; vector su;..
접근: 노드간 순서를 정렬하는 것이기 때문에, 위상정렬로 해결하면 된다. 전략: 각 순서에 대해서 그래프를 그려주고, 그래프 중에서 진입차수가 0인 노드부터 처리하면서, 그 노드로 부터 진입하는 노드의 진입차수를 하나 씩 줄여간다. 그리고 줄인 차수 중 0인 노드를 다시 탐색하면서 반복한다. 만약 처리하지 못한 노드가 있는데, 진입차수가 0인 것이 없다면 순서를 처리 할 수 없는 상태이고, 처리 수랑 전체 노드 수가 같다면, 그 처리 순서대로 출력하면 된다. 코드: #include #include #include using namespace std; int n,m; vector edge[1002]; int num[1002]; int main(){ cin >> n >> m; for(int i=0;i> t;..
접근: 어떤 자연수가 주어지면 그것보다는 작은 소수의 합의 갯수를 구하는 것이므로, n보다 작은 소수의 배열을 구하고, 그에 맞는 구간 합을 구하면 된다. 전략: 소수를 구하는 것은 에라스토테네스의 체를 이용하여 구하면 되고, 구간합은 투 포인터(two pointers)를 이용하여 구하면 된다. 코드: #include #include #include using namespace std; vector sosu; //n이하 소수 배열 bool so[4000001]; //소수 판별 배열 int n; int sum = 0; int s = 0, e = 0; int res = 0; int main(){ cin >> n; for(int i=2;i= sosu.size()) break; sum += sosu[e++]; ..
접근 3가지의 선택: -1, +1, x2 그리고 가장 작은 weight를 가지는 길을 찾아야 한다. 그래서 일단은 너비 우선 탐색을 선택했다. 왜냐하면 가장 짧은 길을 탐색하기 위해서 너비를 우선으로 탐색해야 하기 때문이다. 그렇게 하기 위해 큐를 이용하기로 했다. 그리고 가중치가 0,1 로 다르기 때문에 다익스트라 알고리즘을 이용하기로 했다. 전략 큐에 n의 위치를 넣고, 3가지 선택 중에 선택을 할 수 있는 조건을 만족하면(범위 내 이고, 가중치가 더 작으면) 선택을 하여 큐에 삽입을 한다. 이때, 중요한 건 선택 순서가 중요한데, 2배를 하면 가중치가 0이기 때문에, 3가지 중에 2배를 하는 것을 먼저 선택하도록 순서를 정해야, 최소의 가중치를 구할 수 있다. 방향성이 음수로 가는 방향은 -1 밖에..
군대컴에는 컴파일러를 깔수 없다 ????? 근데 어떻게 개발 했냐!! 윈도우7이상의 컴퓨터에는 .net framwork 가 내장 되어있었다!! 덕분에 짬짬이 만들었다 기간은 2주 정도 걸린것 같다 만든 코드를 다시 복사해서 인터넷으로 옮기는 작업은 일일이 손으로 타이핑 해야만 했다 그작업만 1시간 30분이 걸렸다. (손아파ㅠㅠㅠㅠ... 특히 새끼손가락 너무 많이 썼어) 어찌저찌 해서 복사 완성 하였다 코드는 걍 공개 하겠다 원래는 저작권을 중시하는 성격 이지만 굳이 지뢰찾기를 숨길 필요가 뭐가 있겠나 공유하면서 발전할 수 있다면 나는 상관 없다(크~ 멋있다(ㅈㅅ)) 보기 좋게 코드 스크립터로 공개 합니다. 이참에 프로그램도 같이 업로드 합니다. 아, 참고로 개발 언어는 c#입니다. .net framewo..
주식 공부를 시작했다. 그냥 내가 돈을 벌 수 있는 수단이 노가다나 알바를 제외하고는 없는 거라 생각해서차라리 주식을 공부하는게 나을 거라고 판단했다. 주식공부를 한 뒤에는 파이썬으로 주식 트레이딩 시스템을 구축할 것이다. 그리고 내 의지가 된다면 강의를 올리도록 하겠다사실 강의라고 해봐야 저작권에 모두 걸리는 뻔하디뻔한 자료 배낌 수준이 될 수 밖에 없을지도 모른다.뭐 그때가서 내 위주로 활동을 적는다면 그것도 나름 강의가 될 수도 있겠지 그나마 희망이 존재한다는 것에 감사한다
정말 무료한 기숙사 삶을 살고 있던 도중에 나의 만성 귀차니즘이 급식에서도 또 도져버렸다. 기숙사 사이트에 들어가서 급식표 다운로드하는 것 자체가 너무 과정이 길다고 느꼈다. 사이트 주소입력하고, 카테고리 클릭한다음에 원하는 주차별 급식표 찾고, 첨부파일을 다운로드 받고, 원하는 다운위치 정하고, 다운된 위치 가서 열기 버튼 누르기 까지... 나한테는 너무 길다. 그래서 걍 프로그램으로 만들기로 했다. 그런데 어떻게 만들지? 곰곰히 생각해보니 파이썬으로 웹 크롤링인가 무엇인가가 기술이 있었다는 것을 생각해냈다. 참고로 웹 크롤링이란 웹에서 원하는 데이터를 스크랩핑하는 기술을 포함해서 데이터를 분석하는 기술등을 통틀어 이야기한다 내가 여기서 생각해낸 발상은 '웹 크롤링이 그런 기술이라면 스크랩핑하는 것쯤은..
가끔 게임을 하다보면 이런 생각이 들기도 한다. '이렇게 만들지 말고, 다르게 바꿔서 하는 것이 나을 것 같은데...' '내가 게임을 만든다면 더 잘 만들 수 있을 것 같은데...' 그래서 한번 개임 개발에 도전 해보았다. 1인 게임 개발자로서의 공부 시작 아직 한창 더 놀고 돌아다녀야 할 나이인 20대 이지만, 다른 사람들과의 사교성이 좋지 못하고 활발한 성격이 아니어서 밖에 나가서 노는 것 보다 집에 있는 것을 주로 선호 하는 편이다. 그러다 문득 집에서 돈을 벌 수 있는 방법이 없을까라는 생각을 하게 된다. 내가 할 수 있는 것이라고는 게임과 프로그래밍, 공부 정도 밖에 없었다. 그래서 3가지를 합쳐보았다. 결론: 1인 게임 개발을 해보자 1인 게임 개발의 시작점 Unity3D 게임을 개발해보자라는..
*이 포스팅은 "C++ How to Program(10th)(Paul Deitel,Harvey Detiel)"를 참고하여 정리한 포스팅임을 밝힙니다* 프로그래밍이나 전공 시험에 전적으로 도움이 되지 않는 내용은 배제하고 정리할 것이니 유의하시기 바랍니다. 1단원은 교양,역사지식이 대부분이므로 조금은 알아야 되는 내용은 넣도록 하겠습니다. 컴퓨터란? 컴퓨터 계산이나 논리적 결단을 하는 장치 프로그램(소프트웨어) 컴퓨터의 데이터를 처리하도록 조종하는 명령의 집합 프로그래머의 의해 만들어진다. 하드웨어 컴퓨터를 구성하는 다양한 장치 ex) 키보드, 스크린,마우스, 하드디스크, 메모리, 시디롬, 처리 장치 등 컴퓨터의 6가지 장치들 -입력장치 입력을 받는 부분. 여기서 정보를 얻는다. 마우스,키보드,마이크,스캐..
나는 하고 싶은 것이 평소에는 거의 없어서 방대하고 무료한 시간들을 보낸 후에야, 언젠가 조금은 하고 싶었던 것을 해보기로 결정했다. 그것은 바로 게임 개발하기 그 이전에는 일이 많아서 할 시간이 없었다하더라도 지금은 남은 게 시간 뿐이니 게임을 만들어서 광고로 돈이라도 벌어야지 하는 마음으로 cocos2d-x를 깔아보았다. cocos2d-x 란? 출처: cocos2d-x.org Cocos2d는 2D 게임 개발용 오픈 소스 소프트웨어 프레임워크이다. 게임과 모바일 앱, 반응형 전자책 등 GUI 기반 상호작용 소프트웨어의 개발에 사용할 수 있다. 출처: 위키백과 한마디로 게임 엔진이다. 그런데 대부분 사람들은 이 엔진은 잘 못들어 봤을 것이다. unity,언리얼 등의 엔진들은 들어 봤지만, 이것을 처음 듣..