[C++] 백준 11720: 숫자의 합
·
공부/BAEKJOON
https://www.acmicpc.net/problem/11720문제N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.  제출 코드 #include using namespace std;int N;string input;int sum;void Sum(int arr[]) { for (int i = 0; i > N; int* arr = new int[N]; cin >> input;//입력값을 string에 저장 for (int i = 0; i  노트입력값에 숫자 N개가 공백 없이 주어지므로 string으로 받아 준다.이때, int형으로 변환해주어야 한다.아스키코드에서 문자와 숫자의 코드값 차이는 48이므로문자에 -48 또는 -'0'을 해주면 된다...
[C++] 백준 2750번: 수 정렬하기
·
공부/BAEKJOON
https://www.acmicpc.net/problem/2750 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오   제출 코드#includeusing namespace std;int N;int arr[1000];void merge(int arr[], int left,int mid, int right) { int n1 = mid - left + 1; //왼쪽 배열의 크기 int n2 = right - mid; //오른쪽 배열의 크기 //임시 배열 생성 int* leftArr = new int[n1]; int* rightArr = new int[n2]; for (int i = 0; i > N; for (int i = 0; i > arr[i]; } mergesort(arr, ..
2. 배열과 리스트, 벡터, 구간 합
·
공부/자료구조
※ Do it! 알고리즘 코딩테스트 c++편 교재와 강의로 공부한 내용을 정리했습니다.1-1. 배열배열은 메모리의 연속 공간에 값이 채워져있는 형태의 자료구조이다.인덱스를 통해 참조할 수 있으며, 선언한 자료형의 값만 저장할 수 있다. 배열의 특징1. 인덱스를 사용하여 값에 바로 접근할 수  있다.2. 새로운 값을 삽입하거나 특정 인덱스에 있는 값을 삭제하려면 주변에 있는 값을 이동시켜야한다.3. 배열의 크기는 선언할 때 지정할 수 있으며, 한 번 선언하면 크기를 늘리거나 줄일 수 없다.4. 구조가 간단하므로 코딩 테스트에서 많이 사용한다. 1-2. 리스트 리스트는 값과 포인터를 묶은 노드라는 것을 포인터로 연결한 자료구조이다.  리스트의 특징1. 인덱스가 없으므로 값에 접근하려면 Head포인터부터 순서..
1. 시간복잡도, 디버깅
·
공부/자료구조
※ Do it! 알고리즘 코딩테스트 c++편 교재와 강의로 공부한 내용을 정리했습니다. 코딩 테스트의 핵심 중 하나는 문제마다 주어진 시간복잡도를 고려해 적절한 알고리즘을 선택하는 것이다. 알고리즘에서 시간 복잡도는 주어진 문제를 해결하기 위한 연산 횟수를 말한다. 일반적으로 1억번의 연산은 1초의 수행 시간으로 예측할 수 있다.  1-1. 시간 복잡도 유형빅-오메가 : best case빅 - 세타 : average case빅 - 오 : worst case 1~100 사이의 무작윗값을 찾아 출력하는 코드에서빅-오메가 표기법의 시간 복잡도는 1번,빅-세타 표기법의 시간 복잡도는 N/2번,빅-오 표기법의 시간 복잡도는 N번 이다. 코딩테스트에서는 빅-오 표기법을 기준으로 수행 시간을 계산하는 것이 좋다.다양..
[Unity] 디자인패턴 : Singleton 싱글톤 패턴
·
공부/Unity & C#
싱글톤 싱글톤 패턴은 특정 클래스의 인스턴스를 하나만 생성하고, 어디에서든 그 인스턴스에 접근할 수 있도록 보장하는 디자인 패턴이다. 클래스가 자신의 인스턴스 하나만 인스턴스화할 수 있도록 보장여러개를 만들어도 하나만 남음해당 단일 인스턴스에 대한 손쉬운 전역 엑세스를 제공하나의 객체만 존재할 필요가 있을 때상태창게임 매니저오디오 매니저파일 관리자UI Settings등등안티 패턴으로 취급되기도 함양날의 검커플링 발생하기 쉬운 구조멀티스레드 환경에서는 동기화 처리가 필요테스트 및 디버깅이 불편생성 시점이 명확하지 않음=> 필요한 경우에만 주의해서 사용해야 한다. 싱글톤 코드using UnityEngine;public class SimpleSingleton:MonoBehaviour{ public static..
[앱테크] 1일차 후기&추천인 코드 (마이비|발로소득|라이프플래닛|플리토|패널파워|머니워크|캐시워크|야핏무브|비트버니|토스)
·
일상
🍀 추천인 코드🍀 캐시워크 KRFKWMJ7 라플 20241019639 머니워크 HDUKNK 발로소득 WTNYPZ 마이비 MM608540YS 야핏무브 25SKU22N 비트버니 6ZDKP 엠브레인 패널파워 knh000125NH헬스케어 09591055플리더스 MJ9xbXiiDXXT타임스프레드 Fkm0a4오베이 https://ovey.app/fdl/LJzNipqHUJdXSZsBA   복사 후 추천인 입력하시면 추가 적립 받으실 수 있어용 글 맨 밑에 1일차 총 수입 있습니다!우선 갑자기 앱테크에 꽂혀서 어플 여러개를 다운받아봤습니다..라이프 플래닛은 시작한지 3개월차 정도 되었고 나머지는 모두 오늘 새벽에 처음 다운받았습니다.(토스는 다음페이지로 넘어가서 잘렸어요..) 유형별로 분류해보자면1. 만보기 : 라..
[C++] 11-1. 반드시 해야 하는 대입 연산자의 오버로딩
·
공부/C++
객체간 대입연산의 비밀 : 디폴트 대입 연산자복사 생성자의 특성정의하지 않으면 디폴트 복사 생성자가 삽입된다.디폴트 복사 생성자는 멤버 대 멤버의 복사(얕은 복사)를 진행한다.생성자 내에서 동적 할당을 한다면, 그리고 깊은 복사가 필요하다면 직접 정의해야한다.대입 연산자의 대표적인 특성정의하지 않으면 디폴트 대입 연산자가 삽입된다.디폴트 대입 연산자는 멤버 대 멤버의 복사(얕은 복사)를 진행한다.연산자 내에서 동적 할당을 한다면, 그리고 깊은 복사가 필요하다면 직접 정의해야 한다.이처럼 대입 연산자의 오버로딩은 복사 생성자와 성격이 매우 유사하다. 그러나. 대입 연산자와 복사 생성자는 호출되는 시점에서 차이가 있다.//복사 생성자가 호출되는 상황int main(void){ Point pos1(5, 7);..
[C++] 10-4. cout, cin 그리고 endl
·
공부/C++
다음은 C++의 콘솔 입출력에 사용되는 cout과 endl의 이해를 돕기 위한 예제이다.#include namespace mystd { //cout과 endl을 직접 구현하기 위해 선언한 이름공간 using namespace std;//이 지역 내에서만 유효한 선언 class ostream { public: //위의 예제는 한가지 문제점을 지니고 있다.cout이러한 형태의 문장은 컴파일 오류를 발생시킨다.( ( ( cout 즉, 모든 그래야 연이은  그러나 앞의 예제의  앞서 보인 예제를 확장해보자.#include namespace mystd { using namespace std; class ostream { //cout 객체의 참조값을 반환하는 형태로 확장 public: ostream& opera..
[C++] 10-3. 교환법칙 문제의 해결
·
공부/C++
Point operator*(int times, Point& ref){ Ponit pos(ref.xpos*times, ref.ypos*times); return pos;}자료형이 다른 두 피연산자를 대상으로 하는 연산기본적으로 연산에 사용되는 두 피연산자의 자료형은 일치해야한다.그리고 일치하지 않으면, 형 변환의 규칙에 따라서 변환이 진행된 다음에 연산이 이뤄져야 한다.그러나 다음 예제에서 보이듯이 연산자 오버로딩을 이용하면, 이러한 연산 규칙에 예외를 둘 수 있다.#include using namespace std;class Point {private: int xpos, ypos;public: Point(int x = 0, int y = 0) : xpos(x), ypos(y) { } void Sh..
[C++] 10-2. 단항 연산자의 오버로딩
·
공부/C++
증가, 감소 연산자의 오버로딩대표적인 단항 연산자로든 다음 두가지가 있다.1 증가 연산자 ++1 감소 연산자 --만약 Point 라는 클래스에 ++연산자가 오버로딩 되어있다고 가정해보자.++pos; //pos는 Point 의 객체 멤버함수의 형태로 오버로딩 된 경우에는 다음과 같이 해석된다.pos.operator++(); 단항 연산자를 오버로딩 했기 때문에 전달할 인자는 없다. 전역함수의 형태로 오버로딩 된 경우에는 다음과 같이 해석된다. operator++(pos); 전역함수의 경우는 피연산자가 모두 인자로 전달된다.#include using namespace std;class Point {private: int xpos, ypos;public: Point(int x = 0, int y = 0) : x..