DFS 알고리즘, flood fill을 이용한 그림판 채우기 구현 수행평가로 만든 그림판에 채우기 기능을 구현하고 싶었습니다. 주요 소스코드는 아래와 같습니다. flood fill로 왼쪽, 오른쪽, 위쪽, 아래쪽 모두 탐색하면서 색을 칠해나갑니다. paint 함수는 이렇게 정의되어 있습니다. 평소에 그림을 그리며 색을 칠할 때, point 배열값도 변경해주면서 채우기 기능을 구현할 때 사용할 수 있었습니다. 아래는 시연 영상입니다. 감사합니다 Programming/Algorithm 2018.12.16
싱글톤 getInstance() null 반환할 때 이렇게 해결할 수 있다. 1234567891011public class ClassName { private static ClassName instance; private ClassName () {} public static ClassName getInstance () { if ( instance == null ) instance = new ClassName(); return instance; }}Colored by Color Scriptercs Programming/Android 2018.09.27
모꼬지: 남북을 하나로 이어줄 소통의 공간 https://play.google.com/store/apps/details?id=com.company.stack.mokkozi 우리의 소원은 통일, 꿈에도 소원은 통일. 말로만 들어도 가슴이 벅차오르는 단어, 통일! 하지만 이렇게 가슴 설레는 통일을 당장 맞이하게 된다면? 통일 당시 소통의 문제로 고통을 겪었던 독일이 그랬듯, 식민지에서 벗어날 때 분단선이 마음대로 정해져 지금까지도 내전이 지속되고 있는 아프리카 특정 국가들이 그랬듯, 우리는 68년의 길었던 분단의 시간 앞에 많은 눈물을 흘려야 할 것입니다. 우선 익숙하지 않은 서로의 언어에 익숙해지는데 많은 시행착오를 반복해야하고 서로의 문화를 받아들이고 이해하는데도 심혈을 기울여야 하죠. 통일을 위해서라면 당연히 수반되어야하는 고통들. 그런데 이러.. Programming/Project 2018.09.27
[C++] 상속 이미 정의된 클래스의 멤버를 새롭게 정의할 클래스의 멤버로 참조케 하는 것을 말합니다. 즉, 이미 작성한 클래스의 멤버를 물려받는 것입니다. 부모 클래스/기반 클래스 와 자식 클래스/파생 클래스 라고 얘기합니다. class 자식클래스 : 접근지정자 부모클래스{멤버 변수와 함수 선언;}; 자식 클래스의 객체는 부모 클래스의 멤버를 새롭게 정의하지 않아도 멤버 참조가 가능합니다. (private 제외) 12345678910111213141516171819202122232425262728#include #include using namespace std; class Figure //부모 클래스{public: void setColor(const string color); string getColor(); pri.. Programming/C++ 2018.01.22
[C++] 파일 입출력 fstream 사용하기 위해서 #include 을 해야합니다. 파일 출력 클래스 ofstream. 출력할 내용을 파일 객체로 전달하면 됩니다. ofstream 파일출력객체;파일출력객체.open("출력파일이름");파일출력객체 > 입력 내용저장변수;파일입력객체.close(); 파일 존재 여부 확인 멤버 함수 fail() : 객체가 가리키는 파일이 없으면 true를, 객체가 가리키는 파일이 있으면 false를 반환합니다. 파일의 마지막 위치 확인 멤버 함수 eof() : 파일 포인터가 파일 마지막에 위치하면 true를, 파일 포인터가 파일 마지막이 아니면 false를 반환합니다. fstream 클래스는 open을 할 때 파일 모드를 설정해서 따로 입력 객체, 출력 객체 신경 쓰지 않고 쓸 수 있습니다. 12345678910.. Programming/C++ 2018.01.22
[C++] string 클래스 string 클래스는 문자열 클래스이고, 이미 정의되어 있는 클래스입니다. 사용하기 위해서 #include 을 해줘야 합니다. string s_name="임재민"; == string s_name("임재민");//연산자 오버로딩 덕분에 가능합니다. (string s_name="임재민";) cout Programming/C++ 2018.01.22
[C++] this 객체 자신을 가리키는 포인터입니다. 모든 객체는 this 포인터를 가지고 있습니다. 멤버 함수 내에서 매개변수와 멤버 변수의 이름이 동일할 경우 객체의 멤버 변수임을 명시하기 위해서 사용합니다. 123456789101112131415161718192021222324252627282930#include using namespace std; class SampleScore {public: void setScore(const int score); int getScore(); private: int score;}; void SampleScore::setScore(const int score) { this->score = score; //SampleScore::score = score;} int SampleSco.. Programming/C++ 2018.01.22
[C++] 객체 포인터 동일 클래스의 객체 주소를 저장합니다. 객체 포인터의 멤버 참조 연산자는 -> 입니다. (구조체와 동일) 클래스이름 객체;클래스이름 *객체포인터;객체포인터 = &객체;객체포인터 -> 멤버; 이렇게 생성할 수도 있고, (정적 객체) 객체포인터 = new 클래스이름;객체포인터 -> 멤버; delete(객체포인터); new 키워드를 사용해서 객체를 만들고 반환된 주소를 포인터 객체에 저장하는 방법도 있습니다. (동적 객체) 123456789101112131415161718192021222324252627282930313233343536373839404142#include using namespace std; class CopyObj{public: CopyObj(const double h, const doubl.. Programming/C++ 2018.01.22
[C++] 소멸자 객체가 소멸할 때 자동으로 실행되는 함수입니다. 소멸자 이름은 생성자 이름에 "~" 기호를 앞부분에 붙인 형태입니다. ex) ~Student(); //소멸자 1234567891011121314151617181920212223242526272829303132333435363738394041#include using namespace std; class CopyObj{public: CopyObj(const double h, const double w); ~CopyObj(); void showVar(); private: double height; double weight;}; CopyObj::CopyObj(const double h, const double w) { height = h; weight = w;}.. Programming/C++ 2018.01.22
[C++] 생성자 생성자는 객체가 생성될 때 자동으로 호출되는 멤버 함수입니다. 클래스 이름과 같아야 하고, 함수의 반환값은 없습니다. public 접근 속성을 가져야 하고, 객체 생성과 동시에 멤버 변수들을 초기화 할 때 사용됩니다. 생성자를 따로 정의하지 않았을 경우, 매개 변수가 없고, 아무 기능도 하지 않는 디폴트 생성자가 자동으로 만들어집니다.(매개 변수가 있는 생성자를 정의할 시 디폴트 생성자가 자동으로 생성되지 않아서 인자 없이 객체를 생성하지 못하므로, 꼭 인자를 주어 객체를 만들거나, 따로 디폴트 생성자를 만들어줘야 합니다. ex) Student(){} ) 1234567891011121314151617181920212223#pragma once#ifndef _STUDENT1_H_ #include using.. Programming/C++ 2018.01.22