본문 바로가기

분류 전체보기233

부족한 금액 계산하기 문제 설명 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다. 놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요. 단, 금액이 부족하지 않으면 0을 return 하세요. 제한사항 놀이기구의 이용료 price : 1 ≤ price ≤ 2,500, price는 자연수 처음 가지고 있던 금액 money : 1 ≤ money ≤ 1,000,000,000, money는 자연수 놀이기구의 이용 횟수 c.. 2022. 7. 23.
나머지가 1이되는 수 찾기 제한사항 3 ≤ n ≤ 1,000,000 입출력 예 n result 10 3 12 11 입출력 예 설명 입출력 예 #1 10을 3으로 나눈 나머지가 1이고, 3보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 3을 return 해야 합니다. 입출력 예 #2 12를 11로 나눈 나머지가 1이고, 11보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 11을 return 해야 합니다. #include int solution(int n) { int answer = 2; // 3 2022. 7. 23.
문자열 #include #include int main(void) { //문자열 //포인터 차이점 wchar_t swct[10] = L"abcdef"; //const wchar_t* wct = L"abcdef"; // 2byte로 읽어야하기때문에 무조건 const로 선언해줘야함 wchar_t* wct = (wchar_t*)L"abcdef";// (wchar_t* 로 강제형변환 가능하지만 문제발생) swct[1] = 'z'; //swct[10] 배열의 값이 바뀜 wct[1] = 'z'; //값이 변하지만 ROM에 설정된 값자체가 바뀌기때문에 큰 오류발생 //컴파일, 링크에서 문제가 안돼서 exe파일까지 만들어지지만 런타임 오류발생 return 0; } 2022. 7. 22.
void 포인터 #include int main(void) { void* pVoid = nullptr; int* pInt = nullptr; { int a = 0; float f = 0.f; double d = 0.; long long ll = 0; pVoid = &a; pVoid = &f; pVoid = &d; pVoid = ≪ } return 0; } void* 의 특징 1. 원본의 자료형을 정하지 않음 2. 어떠한 타입의 변수의 주소든 다 저장 가능 ( 데이터의 원형을 특정한 자료형으로 보지 않기 때문) 3. 역참조 불가능 4. 주소 연산 불가능 2022. 7. 22.
포인터 문제 2 #include #include int main(void) { //문제 2 char cArr[2] = { 1, 1 }; short* pS = (short*)cArr; int data = *pS; printf("%d ", data); return 0; } 2022. 7. 20.
포인터 문제 1 #include #include int main(void) { //포인터 문제 1 short sArr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int* pI = (int*)sArr; int data = *((short*)(pI + 2)); printf("% d", data); //값은 5 return 0; } 2022. 7. 20.
정수배열과 포인터 2022. 7. 20.
포인터 2022. 7. 20.
운영체제 솔수션 플랫폼 = 무언가가 실행될수 있는 기반 (Android, ios, window) window 운영체제(데이터 처리 단위) 4byte = 32bit = x86 8byte = 64bit = x64 요즘 게임 = 최소 사향 x64 2022. 7. 19.
정적변수(static), 외부변수(extern) 정적변수(static) = 선언되는 위치에 따라서 동작이 조금씩 차이는 있지만 공통적인 뜻차이는 변하지 않는다. 새로운 기능 이라기 보단 제한을 걸어주는것이 기능 전역변수와 다르게 파일 고유의 정적으로 선언된 변수임으로 Link에러(중복x)가 나지 않는다. c++ 문법 기준 static 변수 선언한 구문은 최초 한번만 실행하고 그이후부터 건너뛴다. 접근을 제한 함으로써 방어적 코드를 구현할 수 있다. (전역변수와 차이점) #include #include "func.h" static int i = 0; //정적변수 int global_i = 0; //전역변수 int test(); //함수선언 int main(void) { i = 50; test(); //함수호출 test(); test(); test(); .. 2022. 7. 19.
분할구현 function.cpp (실제 함수 구현) #include "function.h" int add(int a, int b) { return a + b; } function.h(헤더파일) #pragma once int add(int a, int b); //함수 선언 링크 하는 단계에서 함수가 중복될수 있으므로 함수 선언만 한다. main.cpp #include #include "function.h" // 헤더파일 int main(void) { int data; data = add(20, 30); return 0; } 분할구현 1. 장점 관리가 편하고 재사용이 편하다 2. 단점 모든 cpp파일을 합쳤을때 변수명이 다 겹쳐 어느 것을 말하는지 알 수 없다. 그로인해 링크 단계(LNK) 의 오류가 발생할 수 있다.. 2022. 7. 18.
지역변수, 전역변수 함수안에서 지역변수를 사용할때 변수가 증가 하지 않는다. #include //변수의 종류 // 1. 지역변수 (스택 영역) // 2. 전역변수 (데이터 영역) // 3. 정적변수 (데이터 영역) // 4. 외부변수 (데이터 영역) //메모리 영역 // 1. stack 영역 // 2. data 영역 // 3. heap 영역 // 4. 읽기 전용(코드, ROM) // 전역변수 int global = 0; //Data 영역 //Data 영역 틍직 //프로그램 시작 시 생성 // 프로그램 종료 시 해제 void Test() { int n = 0; ++n; } int main() { Test(); //n = 1 Test(); //n = 1 Test(); //n = 1 return 0; } 전역변수를 사용해서 함수.. 2022. 7. 18.