블로그 이미지
가은파

카테고리

분류 전체보기 (12)
IT이야기들 (2)
Android와Java (0)
알고리즘 (2)
UnityGameForMySon (2)
Total
Today
Yesterday

달력

« » 2025.5
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 29 30 31

공지사항

태그목록

최근에 올라온 글

#include <iostream>
#include <list>
#include <time.h>

using namespace std;

int main()
{
    list<int> v;
    clock_t start, end;
    
    for (int i = 0; i < 1000000; i++)
    {
        v.push_back(i);
    }

    start = clock();
    list<int>::iterator iter;
    for (iter = v.begin(); iter != v.end() ; iter++)
    {
        iter++;
    }
    end = clock();
    cout << "\nduration2: " << end - start << "\n"; // duration2: 988
    iter--;
    cout << *iter;        // 999999

    iter = v.begin();
    start = clock();
    advance(iter, 999999);          //modifies the iter
    end = clock();

    cout << "duration1: " << end - start << "\n"; //    duration1: 81
    cout << *iter;        // 999999
}

Posted by 가은파
, |

C++ Set example

카테고리 없음 / 2021. 9. 19. 18:23

#include <iostream>
#include <set>

using namespace std;

#define CLASS_STUDENT 30
typedef struct Student{
    int mID;
    int mScore;
    string name;

    bool operator< (const Student& st) const {
        return st.mScore < mScore ? true : false;
    }
}setStudent[CLASS_STUDENT];

set<Student>::iterator studentIters[CLASS_STUDENT];


int main()
{
    set<int> s;
    set<int> k;
    //set은 중복을 허용하지 않고, 순서를 가지고 있다~!!!
    //default오름차순 ~~!!!
    set<Student> mClass; 

    for (auto& a : studentIters) {
        a = mClass.end();
    }

    studentIters[1] = mClass.insert({ 1,100, "Dunkin" }).first;
    studentIters[5] = mClass.insert({ 5,70, "CoCo" }).first;
    studentIters[8] = mClass.insert({ 8,90, "Charls" }).first;
    studentIters[25] = mClass.insert({ 25,30, "Memphis" }).first;
    studentIters[7] = mClass.insert({ 7,40, "Couman" }).first;
    
    //같은 키값을 넣으면, 넣은 값은 그냥 버림, 리턴은 기존값 iterator를 준다.
    studentIters[8] = mClass.insert({ 8,40, "Coumano" }).first; 
    studentIters[9] = mClass.insert({ 9,60, "Hojberg" }).first;

    cout << "5번 학생 이름" << studentIters[5]->name;

    cout << "** ID별 table로 ID순 정렬된 원소를 출력\n";
    for (auto& a : studentIters) {
        if (a == mClass.end()) {
            cout << "| 없다";
        } else
            cout << "| "<<a->mID << " " << a->name << " " << a->mScore;
    }
    cout <<"\n";

    cout << "** 정렬된 원소를 출력\n";
    set<Student>::iterator st_iter;
    for (st_iter = mClass.begin(); st_iter != mClass.end(); st_iter++)
    {
        cout << " | "<<st_iter->mID << " " << st_iter->name << " " << st_iter->mScore ;
    }

    set<Student>::iterator st_iter_find;


    cout << "\nFind 결과의 이름: " << mClass.find({ 9,60, "Hojberg" })->name;
    cout << "\nFind 이름을 다르게 입력해도 : " << mClass.find({ 7,60, "KinKong" })->name;


    cout << "\n9번 삭제한 뒤 return되는 iterator : " << mClass.erase(studentIters[9])->mID;
    cout << "\n** 9번 삭제한 뒤 정렬된 원소를 다시 출력\n";
    for (st_iter = mClass.begin(); st_iter != mClass.end(); st_iter++)
    {
        cout << " | " << st_iter->mID << " " << st_iter->name << " " << st_iter->mScore;
    }

    set<int>::iterator iter;

    s.insert({ 1,100 });
    s.insert({ 5,20 });
    s.insert({ 8,20 });
    s.insert({ 25,20 });
    s.insert({ 7,20 });
    s.insert({ 9,20 });

    cout << "\n\n(정수편)** 정렬된 원소를 출력\n";
    for (iter = s.begin(); iter != s.end(); iter++)
    {
        cout << *iter << " ";
    }

    cout << "\n** 8이 존재하면 8보다 큰 원소를 출력\n";
    for (iter = s.find(8); iter != s.end(); iter++)
    {
        cout << *iter << " ";
    }

    cout << "\n** 333이 존재하나?\n"; 
    iter = s.find(333);
    if (iter != s.end()) {
        cout << *iter << " : 존재 " << endl;
    }
    else {
        cout << "존재하지 않음 " << endl;
    }
    
    cout << "\n** 넣고 다시 확인\n";
    s.insert(333);
    iter = s.find(333);
    if (iter != s.end()) {
        cout << *iter << " : 존재 " << endl;
    }
    else {
        cout << "존재하지 않음 " << endl;
    }

    k.insert(5);
    k.insert(20);


    k.swap(s);

    cout << "** k랑 swap 한뒤 원소를 출력\n";
    for (iter = s.begin(); iter != s.end(); iter++)
    {
        cout << *iter << " ";
    }

}

Posted by 가은파
, |

#include <iostream>
#include <vector>

using namespace std;

void vector_integer();

int main()
{
//vector integer
//int 예제
vector_integer();

}

void vector_integer() {
vector<int> intVector;
vector<int>::iterator vIter;

intVector.push_back(1);
intVector.push_back(6);
intVector.push_back(10);
intVector.push_back(3);
intVector.push_back(3);
intVector.push_back(7);
intVector.push_back(8);
intVector.push_back(9);
intVector.push_back(4);

//vector를 순회하며 값을 찍어라
cout << "vector 값들\n";
for (vIter = intVector.begin(); vIter!=intVector.end(); vIter++)
{
cout << *vIter << " : ";
}
cout << "\n";

vIter = intVector.begin();
intVector.insert(vIter, 5);

cout << "앞에 5를 넣고 다시 print\n";
for (vIter = intVector.begin(); vIter != intVector.end(); vIter++)
{
cout << *vIter << " : ";
}
cout << "\n";

cout << "index참조\n";
cout << "원소 3 [ ]참조: " << intVector[3] << "\n";
cout << "원소 3 vector.at 참조: " << intVector.at(3);

cout << "\n";
//중간 삭제
cout << "5번째 원소 삭제하고\n";
intVector.erase(intVector.begin() + 5);
for (vIter = intVector.begin(); vIter != intVector.end(); vIter++)
{
cout << *vIter << " : ";
}
cout << "\n";

//삭제시 clear
intVector.clear();

cout << "clear 후 size : " << intVector.size();
}

Posted by 가은파
, |

C++ set 예제 연습

알고리즘 / 2021. 9. 18. 09:15

#include <iostream>
#include <set>

using namespace std;

#define CLASS_STUDENT 30
typedef struct Student{
    int mID;
    int mScore;
    string name;

    bool operator< (const Student& st) const {
        return st.mScore < mScore ? true : false;
    }
}setStudent[CLASS_STUDENT];

set<Student>::iterator studentIters[CLASS_STUDENT];

/*

    //set은 중복을 허용하지 않고, 순서를 가지고 있다~!!!
    //default오름차순 ~~!!!

*/
int main()
{
    set<int> s;
    set<int> k;

    set<Student> mClass; 

    for (auto& a : studentIters) {
        a = mClass.end();
    }

    studentIters[1] = mClass.insert({ 1,100, "Dunkin" }).first;
    studentIters[5] = mClass.insert({ 5,70, "CoCo" }).first;
    studentIters[8] = mClass.insert({ 8,90, "Charls" }).first;
    studentIters[25] = mClass.insert({ 25,30, "Memphis" }).first;
    studentIters[7] = mClass.insert({ 7,40, "Couman" }).first;
    
    //같은 키값을 넣으면, 넣은 값은 그냥 버림, 리턴은 기존값 iterator를 준다.
    studentIters[8] = mClass.insert({ 8,40, "Coumano" }).first; 
    studentIters[9] = mClass.insert({ 9,60, "Hojberg" }).first;

    cout << "5번 학생 이름" << studentIters[5]->name;

    cout << "** ID별 table로 ID순 정렬된 원소를 출력\n";
    for (auto& a : studentIters) {
        if (a == mClass.end()) {
            cout << "| 없다";
        } else
            cout << "| "<<a->mID << " " << a->name << " " << a->mScore;
    }
    cout <<"\n";

    cout << "** 정렬된 원소를 출력\n";
    set<Student>::iterator st_iter;
    for (st_iter = mClass.begin(); st_iter != mClass.end(); st_iter++)
    {
        cout << " | "<<st_iter->mID << " " << st_iter->name << " " << st_iter->mScore ;
    }

    set<Student>::iterator st_iter_find;


    cout << "\nFind 결과의 이름: " << mClass.find({ 9,60, "Hojberg" })->name;
    cout << "\nFind 이름을 다르게 입력해도 : " << mClass.find({ 7,60, "KinKong" })->name;


    cout << "\n9번 삭제한 뒤 return되는 iterator : " << mClass.erase(studentIters[9])->mID;
    cout << "\n** 9번 삭제한 뒤 정렬된 원소를 다시 출력\n";
    for (st_iter = mClass.begin(); st_iter != mClass.end(); st_iter++)
    {
        cout << " | " << st_iter->mID << " " << st_iter->name << " " << st_iter->mScore;
    }

    set<int>::iterator iter;

    s.insert({ 1,100 });
    s.insert({ 5,20 });
    s.insert({ 8,20 });
    s.insert({ 25,20 });
    s.insert({ 7,20 });
    s.insert({ 9,20 });

    cout << "\n\n(정수편)** 정렬된 원소를 출력\n";
    for (iter = s.begin(); iter != s.end(); iter++)
    {
        cout << *iter << " ";
    }

    cout << "\n** 8이 존재하면 8보다 큰 원소를 출력\n";
    for (iter = s.find(8); iter != s.end(); iter++)
    {
        cout << *iter << " ";
    }

    cout << "\n** 333이 존재하나?\n"; 
    iter = s.find(333);
    if (iter != s.end()) {
        cout << *iter << " : 존재 " << endl;
    }
    else {
        cout << "존재하지 않음 " << endl;
    }
    
    cout << "\n** 넣고 다시 확인\n";
    s.insert(333);
    iter = s.find(333);
    if (iter != s.end()) {
        cout << *iter << " : 존재 " << endl;
    }
    else {
        cout << "존재하지 않음 " << endl;
    }

    k.insert(5);
    k.insert(20);


    k.swap(s);

    cout << "** k랑 swap 한뒤 원소를 출력\n";
    for (iter = s.begin(); iter != s.end(); iter++)
    {
        cout << *iter << " ";
    }

}

'알고리즘' 카테고리의 다른 글

재귀를 이용한 순열 알고리즘  (0) 2015.11.19
Posted by 가은파
, |

참조 영상 : https://www.youtube.com/playlist?list=PLBIb_auVtBwCKQk6blxNPYC5GEuaC4DGm

 

MAKE AN IOS/ANDROID GAME

 

www.youtube.com

영어지만 공부하는 마음으로

'UnityGameForMySon' 카테고리의 다른 글

Unity Game For My Son - Day #1  (0) 2020.07.23
Posted by 가은파
, |
  • Revoke Unity ID
  • Install Unity Hubㅇㅇ  
  • Install Unity : 통합하여 install해줌
    • Unity studio
    • Visual Studio Community 2019
    • Android support
    • iOS support
    • Windows Support

 

<설치 결과>

Posted by 가은파
, |

3P2의 순열 : 3개의 수에서 2개를 뽑아 나열할 경우

* c 문법을 기본으로 사용하고, 편의상 C++로 컴파일함.

#include <stdio.h>

void print_arr(int set[], int set_size){

for (int i = 0; i < set_size; i++){

printf("%d", set[i]);

}

printf("\n");

}

void swap_arr(int set[], int l, int r){

int temp;

temp = set[l];

set[l] = set[r];

set[r] = temp;

}


void perm(int set[], int length, int n, int k){

if (length == k){

print_arr(set, length);

return;

}


for (int i = length; i < n; i++){

swap_arr(set, i, length);

perm(set, length + 1, n,k);

swap_arr(set, i, length);

}

}


void main(void){

int my_array[20] = {};

for (int i = 0; i < 20; i++){

my_array[i] = i;

}

perm(my_array, 0, 3, 2); //예를 들어 3p2를 구한다면..

}

'알고리즘' 카테고리의 다른 글

C++ set 예제 연습  (0) 2021.09.18
Posted by 가은파
, |

애플이 리서치킷으로 잡은 두마리 토끼


현지시간 3월 9일 애플이 키노트로 부터 들은 소식중 

그중 귀를 솔깃하게 한 내용은 리서치킷에 대한 발표이다.


그간 다분히 폐쇄적이라는 비난 아닌 비난을 받아 왔던 애플이 

리서치킷에 대해서는 오픈소스 플랫폼으로 공개하겠다고 발표한 것이다.


개인적으로 생각하는 두가지 노림수는 


iwatch, healthcare 생태계 강화

  오픈소스로 프레임워크까지 오픈하는 만큼, 관련 앱들이 많이 나올 것으로 예상되며,

 iwatch관련 앱들이 헬스와 연동하여 많이 나오지 않을까 싶다. 이는 신규 출시하는 시계의 생태계를 강화하는데 

특히나 도움이 되지 않을까?


공익 추구 기업이미지 제고.

  개인정보보호를 강조함과 동시에, 애플은 관련 데이터를 전혀 들여다보지 않겠다는 발표를 하여

 순수 공익 목적의 사업임을 피력하고, 기업이미지를 강화


시각에 따라 다를 수 있지만, 많은 사람들이 예상치 못한 카드임에는 분명해 보인다.

이에 대응하는 여러 다른 회사들의 행보가 궁금하다.

'IT이야기들' 카테고리의 다른 글

삼성페이에 담겨진 의미  (0) 2015.03.10
Posted by 가은파
, |

root 기사는 아래 링크

Here's How Samsung's Apple Pay Competitor Will Work


국내 신문사의 기사

삼성페이에 대해 당신이 알아야 할 5가지


<img from 조선 비즈 : http://biz.chosun.com/site/data/html_dir/2015/03/03/2015030302705.html>

중요하다고 생각되는 내용을 정리하면,

1.삼성페이는 NFC(근거리무선통신) 방식과 MST(마그네틱보안전송) 방식을 모두 지원 

애플페이가 NFC만 지원

  : 단기적으로 가맹점 기기를 바꾸지 않아도 되는 상황으로 쉽게 시장에 접근할 수 있고, 장기적으로 애플이 가맹점 결제 단말기를 바꾸더라도 같은 방식을 사용하므로 새로 셋업되는 인프라를 그대로 사용 가능함.

연합뉴스에 따르면 NFC 결제를 지원하는 가맹점은 미국에서 10% 미만, 한국에서는 1% 미만에 불과한 것으로 알려진다. 결제는 간편할지 몰라도 가맹점을 찾기가 어렵다 

삼성의 입장에서는 후발주자의 입장에서 최선의 선택으로 보임.


2. 마그네틱 기술의 단점인 보안성을 극복

애플페이와 마찬가지로 '카드정보를 결제 단말기에 저장하지 않는다'는 원칙을 제시. 카드 번호가 그대로 결제 단말기에 인식되는것이 아니라 16자리 일회용 '가상번호'가 생성됨

이 부사장은 삼성페이의 안전성과 관련해 "암호화된 일회용 토큰 정보를 보내면 제휴를 맺은 카드사나 은행이 이걸 해석해서 결제하는 방식"이라고 강조한 뒤 "삼성의 지문인식 기능과 더불어 녹스(KNOX)까지 함께 작동하기 때문에 안전성에 문제가 없을 것"이라고 강조했다. (연합뉴스 3월4일)

'휴대폰에 내장한 카드'에 보안성 우려를 불식 시킴


3.쉬운 사용

카드를 선택하고, 지문인식, 결제 단말기 접촉.

한국을 기준으로 볼 때 기존 카드 사용과 크게 다르지 않음.

외국의 기준으로 보았을 때 비밀번호 누르는 번거로움을 생략하므로, 보다 편리하게 여겨질 수 있으며, 지갑을 가지고 다닐 필요 없음.

사용성 측면의 장점을 기반으로 이용자 확대



Posted by 가은파
, |
집에서 아이와 뭘하면 교육에 좋을까 곰곰 고민하다.
새싹을 키워보기로 했습니다.
얼른 마트에 가서 
새싹을 사다가 아이와 함께 키워보았지요...
아래의 순서입니다... 사진에 날짜가 안 남아 아주 정확하진 않습니다.~
첫날 .. 요런 새싹을 샀어요~(E마트 화분코너에서 삼)
네시간동안 이렇게 물어 담가뒀다가...
접시에 키친 타올을 깔고 검은 비닐을 덮은 뒤에 8시간이 지나면 이렇게 싹이나요...
그리고 하루가 또 지나면..이렇게 싹이 조금씩 커 나갑니다~
또 하루가 지났어요...이제 제법 새싹이라 불러도 될만합니다.
사실 이날 하루동안 물이 말라 예쁘게 자라진 않았습니다.ㅠ.ㅠ
조금만 더 있으면 먹을 수 있을 것 같아요
자아 샐러드용 새싹 완성~ 
물에 잘 씻어 담았어요
접시에 배와 사과를 채 썰고 새싹과 함께 담아요
맛있는 새싹 샐러드 완성~ 
식초1, 간장 1, 설탕 0.5, 참기름 0.5, 참께0.5 요렇게 넣어 잘 섞으면 소스가 완성된답니다.~
Posted by 가은파
, |

최근에 달린 댓글

글 보관함