Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 15 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,19 @@
2. github.com에서 리포를 클론한다.
1. 클론하는 방법은 해당 리포의 클론용 주소(github의 경우 https://github.com으로 시작하거나 git@github.com:으로 시작한다.)를 복사하거나 기억한다.
2. 리포가 저장될 디렉터리로 이동한다.
3. (git clone 리포주소)를 셸에 입력한다.
3. `git clone 리포주소`를 셸에 입력한다.
* 원하는 디렉터리로 이동해서 클론하는 방법 외에 (git clone 리포주소 원하는디랙터리)를 입력하면 현재 작업 디렉터리에 관계없이 클론할 수 있다.
4. 원하는대로 클론이 잘 되었나 확인한다.
3. vscode의 경우 ^k ^o를 입력하여 클론된 디렉터리를 선택한다.
* neovim의 경우 셸에서 클론된 디렉터리로 이동한다.
4. vscode의 경우 좌측의 패널에서 버전관리를 선택한다. 브랜치 모양이고, 초기 설정시에 위에서 3번째에 위치한다. 그 후 열리는 사이드바에서 리포 이름이 있는 곳 근처에 가면 그 줄에 여러 아이콘이 생긴다. 그 중 점 세 개를 눌러 더보기를 연다. 여기서 체크아웃을 선택하여 기존 브랜치나 새 브랜치로 체크아웃하여 커밋이 마스터에 바로 쓰이는 것을 방지한다.
* neovim의 경우 셸에서 git checkout 브랜치를 입력하여 체크아웃한다. 새 브랜치의 경우 체크아웃 전에 git branch 브랜치로 브랜치를 우선 만들어야 한다.
* neovim의 경우 셸에서 `git checkout 브랜치`를 입력하여 체크아웃한다. 새 브랜치의 경우 체크아웃 전에 `git branch 브랜치`로 브랜치를 우선 만들어야 한다.
5. 변경사항을 작성한다.
6. vscode의 경우 버전관리 사이드바에서 커밋 메세지를 입력한 후 ^[Enter]나 체크 버튼을 눌러 커밋한다.
* neovim의 경우 셸에서 git commit을 입력하여 커밋 메세지 입력창으로 전환하거나 git commit -m "메세지"를 입력하여 커밋한다.
* neovim의 경우 셸에서 `git commit`을 입력하여 커밋 메세지 입력창으로 전환하거나 `git commit -m "메세지"`를 입력하여 커밋한다.
7. vscode의 경우 점 세 개를 누른 후 푸시버튼을 눌러 푸시한다.
* neovim의 경우 셸에서 git push를 입력해 푸시한다.
* 새 브랜치의 경우 업스트림이 설정되지 않았다는 에러가 나오는데 git push -u origin 브랜치로 푸시하면 된다.
* neovim의 경우 셸에서 `git push`를 입력해 푸시한다.
* 새 브랜치의 경우 업스트림이 설정되지 않았다는 에러가 나오는데 `git push -u origin 브랜치`로 푸시하면 된다.
8. github 홈페이지에서 해당 리포에 들어간다.
9. 풀 리퀘스트에 들어가서 풀 리퀘스트를 연다.
10. 방금 연 풀 리퀘스트에 들어가면 오른쪽에 리뷰어를 추가하는 부분이 있다. 리뷰어를 추가하고 기다리자.
Expand All @@ -33,6 +33,16 @@
* 이 코드가 마음에 안든다: 코멘트 작성 후 수정 요청을 제출한다.
* 아몰랑 어찌되건 내 알바냐: 그럴거면 왜 시작한건데?
승인되면 아무나 머지하면 된다. 끝!
### 라이브러리 추가하는 방법
#### 우분투 기준이니 주의
1. 깃 리포 내부가 아닌 다른 곳에 깃허브에서 xlnt를 찾아 클론한다.
2. cd를 통해 내부로 들어간다.
3. `cmake .`을 한다.
4. `make`를 하여 기나긴 시간동안 빌드를 하는 것을 기다린다.
5. `sudo make install`을 하여 시스템에 라이브러리를 설치한다.
6. 끝!
### 빌드하는 방법
`g++ -std=c++14(혹은 c++17) source.cpp -Iclnt/include -lxlnt -o binfile.out`
## 규칙
### 커밋 규칙
1. 각자 수정사항이 있으면 브랜치를 만들고 수정한 후에 마스터에 풀 리퀘스트 할 것.
Expand Down
Binary file added data.xlsx
Binary file not shown.
102 changes: 62 additions & 40 deletions githubtest.cpp
Original file line number Diff line number Diff line change
@@ -1,57 +1,79 @@
#include <algorithm>
#include <xlnt/xlnt.hpp>
#include <iostream>
#include <vector>
using namespace std;
//data types
class lottoData_t
{
private:
vector<vector<int>> rawData;
};

int main(void)
{
int a;
while(1)
{
int raw[1000][7];//rww data 임시코드. 이것을 포함한 모든 변수는class 정해지면 삭제 또는 수정 예정
cout << "모드 입력 : ";
cin >> a;
int temp1[45];//(보너스 포함)숫자가 나온 횟수
vector <pair<int, float> >temp3;//편차 sort

switch(a)
vector<vector<int>> rawData;//rawData[n][6] : 보너스번호, rawData[n][0] ~ rawData[n][5] : 당첨번호
public:
auto normal_predict(int startRange, int endRange)//범위에 따라 단순 예상
{
case 1:
//기범이 파이팅
vector<pair<float, int> >temp3;//편차 sort
for(int i=0;i<45;i++)
{
temp1[i]=std::count(*raw,*(raw+700),i+1);
printf("%d",temp1[i]);
// temp1[i]=std::count(*raw,*(raw+700),i+1);
// printf("%d",temp1[i]);
}

for(int i=0;i<45;i++)
temp3.push_back(pair<float, int>(temp1[i],i+1));

temp3.push_back(make_pair(temp1[i],i+1));
sort(temp3.begin(),temp3.end());

cout << "추천 로또 번호는 ";
for(int i=44;i>=38;i--)
cout << temp3[i].second <<endl;
cout << "입니다." << endl;
break;
case 2:
break;

case 3:
break;

case 4:
break;

default:
cout << "잘못된 명령어입니다." << endl;
break;
reverse(temp3.begin(), temp3.end());
vector<int> retval;
for (auto i = 0; i < 6; i++)
retval.push_back(temp3[i].second);
sort(retval.begin(), retval.end());
return retval;
}
auto pattern_predict(int startRange, int endRange)//패턴인식 예상
{
//성우 파이팅
}
lottoData_t(string path = "./data.xlsx")
{
xlnt::workbook wb;
wb.load(path);
auto ws = wb.active_sheet();
for (auto row : ws.rows())
{
vector<int> temp;
for (auto cell : row)
temp.push_back(stoi(cell.to_string()));
rawData.push_back(temp);
}
}
};

int main(void)
{
int a;
while(1)
{
lottoData_t lottoData;
cout << "모드 입력 : ";
cin >> a;
vector<int>temp;
switch(a)
{
case 1:
temp = lottoData.normal_predict(1, 911);
cout << "추천 로또 번호는 ";
for(auto i : temp)
cout << i << " ";
cout << "입니다." << endl;
break;
case 2:
break;
case 3:
break;
case 4:
break;
default:
cout << "잘못된 명령어입니다." << endl;
break;
}
}
}
}
13 changes: 13 additions & 0 deletions tags
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/
!_TAG_PROGRAM_NAME Exuberant Ctags //
!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
!_TAG_PROGRAM_VERSION 5.9~svn20110310 //
lottoData_t githubtest.cpp /^ lottoData_t()$/;" f class:lottoData_t
lottoData_t githubtest.cpp /^ lottoData_t(string path)$/;" f class:lottoData_t
lottoData_t githubtest.cpp /^class lottoData_t$/;" c file:
main githubtest.cpp /^int main(void)$/;" f
normal_predict githubtest.cpp /^ auto normal_predict(int startRange, int endRange)\/\/범위에 따라 단순 예상$/;" f class:lottoData_t
pattern_predict githubtest.cpp /^ auto pattern_predict(int startRange, int endRange)\/\/패턴인식 예상$/;" f class:lottoData_t
rawData githubtest.cpp /^ vector<vector<int>> rawData;$/;" m class:lottoData_t file: