개발자 능력치 물약/C++(11)
-
인라인 함수와 매크로의 차이
매크로 C언어에서 매크로기능을 이용해 원하는 함수나 변수를 정의해서 쓸 수 있었다.#define PI 3.141592#define WINSIZE_X 1080#define WINSIZE_Y 500#define DEG_TO_RAD(degree) ((3.14 / 180.0) * degree) 매크로의 장점 : 함수 호출이 필요없다.매크로의 단점: 디버깅이 힘들다. 함수가 길어지면 불편하다. 남발하면 소스코드의 길이가 길어진다. 타입체크 무시, namespace 무시한다.인라인함수// 매크로 :#define MUL(x,y) ((x)*(y))// 인라인 :inline int MUL(int x,int y) { return x*y;} inli..
2025.03.10 -
프로그래머스 레벨0: 두 수의 연산값 비교하기
문제작성코드#include #include using namespace std;int solution(int a, int b) { int answer = 0; string ab = to_string(a) + to_string(b); int mul_ab = 2 * a * b; int str_ab = stoi(ab); if(str_ab > mul_ab){ answer = str_ab; } else answer = mul_ab; return answer;} 고쳐야 할 점 가독성이 떨어져서 변수선언을 간소화하고 stl 알고리즘의 max함수를 사용했다. 수정코드#include #include #include using namespace std;int ..
2025.02.23 -
프로그래머스 레벨 0: 더 크게 합치기
작성 코드#include #include using namespace std;int solution(int a, int b) { int answer = 0; //a와b를 문자열로 변환 string str_a = to_string(a); string str_b = to_string(b); // (a,b) (b,a) 연산을 수행함 string a_b = str_a + str_b; string b_a = str_b + str_a; // 연산 결과를 int 로 변환 int num_a_b = stoi(a_b); int num_b_a = stoi(b_a); // 대소비교후 큰 값 answer에 저장 if(num_a_b> num_b_a){ ..
2025.02.23 -
프로그래머스 레벨0_ 문자열 섞기
작성코드#include #include using namespace std;string solution(string str1, string str2) { string answer = ""; str1.append(str1); //str2값을 answer짝수번에 복사 for(int i = 0; i 실행결과 str1이 순서가 있는 문자열일 경우 실행 결과가 일치 하지 않았다. 원인 str1.append(str1); // str1이 "abcde"에서 "abcdeabcde"가 됨for (int i = 0; i 이 부분을 실행하면 i=0: str1[1]는 'b' → 변경 전에도 'b'라서 그대로 i=1: str1[3]는 원래 'd' → 'b'로 변경 ..
2025.02.23 -
프로그래머스_레벨0_문자열겹쳐쓰기
작성코드#include #include using namespace std;//my_string의 s번째요소부터 overwrite_string으로 값을 복사하는 함수string solution(string my_string, string overwrite_string, int s) { string answer = ""; for(int i = s; i 실행결과문제:테스트 1의 경우i = s 일때 ) 'l' = 'l' i = s+1 일때 ) 'l' = 'l'....i = s+6 일때 ) '1' = 'l' 테스트 2의 경우overwrite_string의 값 자체를 읽지 못했다. 원인:for문의 조건식을 잘못 설정했다. 테스트 1의 경우 복사하려는 문자열의 크기는 7이다. i..
2025.02.23