본문 바로가기

C++24

[백준 BOJ] 1110번 더하기 사이클 문제 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다. 위의 예는 4번만에 원래 수로 돌아올 수 있다. 따라서 26의 사이클의 길이는 4이다. N이 주어졌을 때, N의 사이클의 길이를 구하는 프로그램을 작성하시오. 1110번:.. 2020. 9. 5.
[C++] 입출력, 연산자 1. 설계 목표 - 호환성 (C언어의 문법 체계를 그대로 계승) - 객체 지향 개념 (캡슐화, 상속, 다형성 / 소프트웨어의 재사용으로 생선성 up)ㅈ - 타입 체크를 업격하게 해 실행 시간 오류의 가능성을 줄이고 디버깅을 도움 - 실행시간의 효율성 저하를 최소화 1) 객체지향형 언어 특징 - 캡슐화 : 데이터를 캡슐로 싸서 외부의 접근으로부터 보호 클래스로 캡슐 표현 - 클래스 : 객체를 만드는 틀 / 멤버 변수들과 멤버 함수로 이루어짐 - 객체 : 클래스라는 틀에서 생겨난 실체 - 상속 : 객체가 자식 클래스의 멤버와 부모 클래스에 선언된 모양 그대로 멤버들을 갖고 탄생 재사용성을 높여 소프트웨어 생산성을 높임 - 다형성 : 하나의 기능이 경우에 다라 서로 다르게 보이거나 다르게 작동하는 현상 Ex).. 2020. 8. 2.
[C++] 클래스와 객체 & 객체 포인터 1. 접근 지정자 1) 접근 지정자 종류 class test { private: // private에 선언할 멤버 // 클래스 내에서만 접근 가능 public: // public에 선언할 멤버 // 모든 클래스와 함수에서 접근 가능 protected: // protected에 선언할 멤버 // 클래스 자신과 상속된 자식 클래스만 접근 가능 } (1) private - 동일한 클래스의 멤버 함수에만 제한함 - 접근 지정자 설정하지 않으면 디폴트로 private으로 처리됨 - 보통 멤버 변수는 private으로 지정하는 것이 바람직하다 ▶ 클래스 외부에서 마음대로 접근하면 안되는 보호해야할 데이터들 ▶ 함수를 통해서만 접근가능 하게 만든다 (2) public - 모든 다른 클래스와 함수에 접근 허용 - 생성.. 2020. 5. 31.
[C++] 클래스와 객체 1. 객체 - 캡슐화 : 객체의 구성 요소들을 캡슐로 싸서 보호하고 볼 수 없게 하는 것 - 객체는 캡슐화를 통해 외부의 접근을 통제해 자신의 내부 요소를 보호함 1) 캡슐화 - 실세계나 C++ 프로그램이나 구성 객체들이 상호 통신하며 시스템이 구동된다 - 캡슐화로 정보들을 보호할 수 있게 접근을 막지만 모든 요소를 차단하면 안된다 정보를 교환하고 통신하기 위해 일부 요소를 노출시켜야 된다 2) 멤버 변수 & 멤버 함수 - 객체는 상태와 행동으로 구성되어 있음 - 상태 = 멤버 변수 - 행동 = 멤버 함수 - 멤버 변수(상태)를 알고 싶다면 멤버 함수(행동)를 호출해야 된다 3) 클래스와 객체 (1) 클래스 (붕어빵 틀) - 객체를 만들어내기 위해 정의된 설계도, 틀 - 클래스는 객체도 실제도 아님 - .. 2020. 5. 24.
[C++] 포인터, 함수 1. 메모리 & 주소 - 프로그램에서 사용된 변수나 배열은 모두 메모리에 존재함 - 메모리의 각 자리에는 주소가 할당 됨 int a = 10; int b = 20; int c = 30; int d = 40; * 변수들이 선언된 선언된 순서대로 메모리에 쌓임 * 자료형 int는 4바이트임으로 메모리 주소가 4씩 벌어져있음 2. 포인터 - 메모리에 있는 데이터 주소를 가리킴 - 주소를 담는 그릇 - 포인터 초기화 방법 방법 1 int a = 10; int *ptr; ptr = &a; 방법 2 int a = 10; int *ptr = &a; * 변수를 선언하고 포인터를 선언한뒤 그 포인터 변수에 초기화 해줌 * "&변수"는 변수의 주소를 알려줌 - 포인터 사용 방법 < 기.. 2020. 4. 7.
[C++] 조건, 반복,배열 1. 조건문 1) if문 - 조건식이 참이면 해당 코드를 실행하고, 거짓일 때 해당 코드를 실행하거나 아무것도 하지 않음 - 보통 수행할 코드가 여러 줄이면 { }를 이용해 묶어줘야 함 if (조건식1) { 참일 때 실행할 코드; } else if (조건식2) { 조건식2에 참일 때 실행할 코드; } else { 모든 조건식에 대해 거짓일 때 실행할 코드; } 2) 중첩 if문 - if문을 수행한 후 또 다른 if문을 사용할 수 있음 - 가능하면 블록으로 코드를 범위를 명확히 해야 함 if (조건식1) { if (조건식2) { 실행할 코드; } else { 실행할 코드; } } else { 실행할 코드; } 3) switch ~ case문 - 참과 거짓 이외의 다른 선.. 2020. 3. 31.