본문 바로가기

전체 글

(12)
백준 1011 Fly me to the Alpha Centauri (c++) 지금까지 문제중에 가장 어려웠던 듯... 기타 다른 풀이들을 참고했다. 121---------4 1221---------6 12321---------9 123321-------12 1234321-------16 가운데에 새로운 수가 거리의 제곱수가 되는 것을 관찰할 수 있다. 새로운 수가 나타날 때의 횟수는 제곱수 * 2 - 1로 볼 수 있다. 그러면 새로운 수가 나타나는 4, 9, 16~~ 등등 사이 숫자의 규칙을 찾아보니 4와 9 사이로 보자면 6까지는 제곱수 * 2 7~9는 제곱수 * 2 + 1 로 볼 수 있다. 그러면 5,6 과 7,8은 어떻게 구분해야 하는지 생각해보면 거리의 제곱수를 더한값 까지로 볼 수 있다. #include #include using namespace std; int mai..
백준 2775 부녀회장이 될테야 (c++) 분수찾기에 이은 왜 어제 못했는지 알 수 없는 문제 222,, 한층 한층 살펴보면 금방 k층 n호 = (k층 n-1호) + (k-1층 n호) 라는 것을 알 수 있다. 그리고 매 층마다 1호는 1명이고, 0층의 n호에는 n명이 들어있다는 것을 알 수 있다. 그리하여 재귀함수로 간단히 짜봤다. 층과 호수는 사실 최대가 14여서 vector는 과하다고 생각들었지만 그냥 썼다. #include #include using namespace std; int func(int k, int n) { if (k == 0) return n; if (n == 1) return 1; return func(k - 1, n) + func(k, n - 1); } int main() { int T; cin >> T; vector h;..
백준 1193 분수찾기 (c++) 백준에서 단계별 풀어보기 중 기본수학 파트에 오니 슬슬 바로 생각이 안나기 시작한다... 그래서 조금이라도 막히는 부분이 있던 문제들은 블로그에 기록하려고 한다. 잠을 못자서 그랬는지 전날 새벽에 어떻게 풀어야 할지 감이 안오던 문제. 자고 일어나니 어제 이걸 왜 못했는지 싶었던..ㅎ 문제는 이렇다. 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. 대각선으로 한줄에 1개씩 늘어나기 때문에 입력 값에서 1, 2, 3 ... 이런식으로 빼다가 X값이 0과 같거나 작아질 때 뺀 값이 몇번째 줄인지 알아낼 수 있다. 그리고 X의 값으로 그 줄의 몇번째인지 알 수 있기 때문에 코드로는 매우 간단하다. #include using namespace std; int main() { int n; cin >..
티스토리 코드블럭으로 코드 첨부 시 오류(해결) 공부한거 기록용으로 코드를 첨부하고 있는데 코드에 가 들어가면 로 묶인 내용이 사라진다... c++ 헤더 첨부만 해도 #include 하면 #include 까지만 나온다 왜이러는지 아시는분. . . 고객센터로 문의 넣었는데 바로 다음날 낮에 답변과 함께 수정해줬다! 카카오 짱빠르네....
c++ 형변환 연산자(static_cast, const_cast, reinterpret_cast, dynamic_cast) double d = 3.14; int i = (int)d; 이런 형변환은 C스타일 형변환 혹은 명시적 형변환 이라고 부른다. 암시적 형변환이 불가능하다는 뜻을 담고 있고, 형변환의 의도를 구별해내기 힘들다는 문제점이 있다. 그래서 C++에서는 4가지 형변환연산자를 제공한다. static_cast 정적 형변환. 가장 일반적인 형태의 형변환이다. A타입에서 B타입으로 암시적인 형변환이 가능하다면 static_cast를 사용해 형변환 할 수 있다. 기본 자료형 데이터 간 형변환과 클래스 상속관계에서의 형변환만 허용한다. double d = 3.14; int i = static_cast(d); const_cast const속성이나 volatile 속성을 제거할 때 사용. *volatile : 가끔 컴파일러가 변..
상속(inheritance)과 다형성(polymorphism), 가상함수(virtual) 상속의 목적 이미 만든 코드를 재사용하기 위해 다형성(polymorhism)을 구현 다형성: 명령을 내렸을 때 다양한 모양으로 구현되는 것 단일명령(one interface) - 다중행동(multiple behavior) 다수의 서로 다른 종류의 객체를 하나로 묶어 관리할 수 있다. private: 이 클래스의 friend 클래스만 멤버 사용 가능. 접근지정자가 없으면 기본적으로 private이다. protected: 자식클래스에서 private 멤버처럼 사용 public: 어느 함수에서건 멤버에 접근 가능. 구조체에서는 기본적으로 모두 public이다. virtual: 가상함수. 부모 클래스에서 붙임. override: 가상함수. 자식클래스에서 뒤에 붙임. final: 가상함수. 자식클래스에서 뒤에 붙..
티스토리 계획 학교다닐 때 주로 onenote를 사용해와서 그런지 아직 공부할 때 다시 볼 것이 있으면 onenote에 기록하는 습관이 있다. 티스토리에 공부한 것들을 정리하여서 올리면 좋겠다는 선배들 추천에 따라 만들었는데 만든지 한 2년만에 처음으로 쓰는듯... 차차 onenote에 기록했었던 것들을 다시 정리해서 티스토리에 올릴 생각이다. 승혜와 1일 1백준 문제 풀기를 지금까지 2달 넘게 해왔는데 백준 문제를 풀고 기록해두는 것도 좋은 것 같다.
c++ special member functions 프로그래머가 정의하지 않는 경우 c++이 자동으로 정의하는 멤버함수이다. Test() default constructor ~Test() destructor Test(const Test&) copy constructor Test& operator=(const Test&) copy assignment operator Test(Test&&) (&&=r-value) move constructor Test & operator=(Test&&) move assignment operator 2개씩 짝이 됨. = default 키워드를 통해 명시적으로 선언 가능. 경우에 따라서는 = delete로 자동 생성을 명시적으로 방지할 수 있다. 클래스 멤버함수로 포인터가 들어있다면 복사생성자와 복사대입연산자를 정의해줘야 한다...