열심히 하는중..(81)
-
블로그에 공부 내용 정리를 하는게 좋을까?
나는 예전부터 필기를 참 싫어했다 어차피 다시 보는게 아니라면 필기같은건 아무런 의미도 없고, 그리고 나는 내가 쓴 내용을 다시 보는 스타일이 아니라고 생각하기도 했다. 또 수업 진행중에 따라 쓰거나, 필기에 집중하는건 사실 받아쓰기의 개념에 가깝다. 단어나 말이 가진 뜻에 집중하기보단 단어가 가진 형태에만 집중하게 되는 느낌이라고 해야 될까. 물론 이건 내가 머리가 좋지 않아서일수도 있다. 학교 다닐 때 나는 공부와 친한 사람은 아니었다. 공부를 왜 해야 하는지 모르겠고, 이걸 배워서 어디에 쓰는지도 모르겠던 사람이었으니까. 정말 공부에 전혀 흥미가 없던 사람이었다. 그리고 지금은 공부가 참 재밌다고 느껴지는게 아이러니 하다. 내가 필요로 하고, 흥미롭다고 생각되는 부분에 대한 학습은 정말 재밌다...
2025.11.22 -
정수(::양수), 변수
특정 변수를 선언할 때int value; 혹은int value = 0; 와 같이 선언하게 된다. 구문에서 int 자리는 자료형을 뜻한다.value는 변수명(이름)을 뜻한다.;는 종결자(구문 종료)를 뜻한다.= 0는 0의 값 대입 (초기화)을 뜻한다. 자료형은 크게1. 정수 (char, whar_t, short, int, long, long long, __int64, __int8 등등)2. 실수 (float, double, long double 등등)로 나눌 수 있다. 정수 표현은 1bit마다 0과 1로 표현한다. 1byte 자료형의 경우, 8bit이므로 00000000 ~ 11111111까지 총 256가지의 표현이 가능하다. 정수 표현 체계는 크게 signed(부호 있는)와 unsigned(부호..
2024.10.13 -
프로그램의 생성 단계
visual studio에서 코드를 작성 한 후 프로그램이 작성되기 위해서 크게 네개의 단계를 거치게 된다. 전처리 - 컴파일 - 어셈블리 - 링크 1. 전처리 단계 #이 붙은 구문을 처리하며, 주석 등을 제거 한다. ex) #include, #define, #ifdef 등, // 주석, /* 주석 */ 등 2. 컴파일 컴파일러가 코드를 읽으며 최적화 등을 수행한다. ex) 네임 맹글링, 진입점, 최적화, 룩업 테이블 등 3. 어셈블리 코드를 2진 어셈블리 코드로 바꾼다. ex) sub, xor, push, mov 등 4. 링크 cpp파일로 만들어진 각각의 obj파일을 서로 연결(병합)해준다. 이렇게 크게 네 단계를 거쳐 exe 파일을 생성하게 된다.
2024.10.13 -
[HackerRank/C++] Closest Numbers
배열 arr가 주어질때, 정렬된 arr에서 두 수의 차이가 최소인 집합을 모두 vector에 저장해 return 한다 vector closestNumbers(vector arr) { vector result; sort(arr.begin(), arr.end()); int diff = INT_MAX; for (size_t i = 1; i arr[i] - arr[i - 1]) { diff = arr[i] - arr[i - 1]; result.clear(); result.push_back(arr[i - 1]); result.push_back(arr[i]); } else if (diff == arr[i] - arr[i - 1]) { result.push_b..
2023.03.14 -
[HackerRank/C++] The Love-Letter Mystery
현재 문자열 s가 좌우 대칭인 문자열과 몇의 차이가 나는지 return 한다 int theLoveLetterMystery(string s) { int result = 0; for (int i = 0; i < s.size() / 2; ++i) result += abs(s[i] - s[s.size() - 1 - i]); return result; } 값을 저장할 result 변수를 선언한다 반복문을 s.size / 2만큼 돌며, 각 문자열의 끝의 절댓값을 구해 result에 더한다 이후 result를 반환한다
2023.03.10 -
[HackerRank/C++] Beautiful Binary String
문자열 b 안에 "010"이 몇번 포함되어 있는지 return 한다 int beautifulBinaryString(string b) { int result = 0; int index = 0; string findString = "010"; while (true) { index = b.find(findString, index); if (index == std::string::npos) break; ++result; index += findString.length(); } return result; } 갯수를 카운트할 result, 검색한 위치를 저장할 index, 찾을 문자열 findString을 선언한다 반복문을 돌며 find 함수로 index부터 findString의 문자가 포함되어 있는지 검사해 값을..
2023.03.10 -
[HackerRank/C++] Funny String
문자열 s를 받을때, s의 각 문자열마다 간격이 좌우 대칭일 경우 "Funny"를 아니라면 "Not Funny"를 return 한다 string funnyString(string s) { vector result; result.reserve(s.size() - 1); for (size_t i = 1; i < s.size(); ++i) result.push_back(abs(s[i] - s[i - 1])); vector result2(result); reverse(result2.begin(), result2.end()); if (result == result2) return "Funny"; else return "Not Funny"; } s의 간격 구해 result에 저장한다 result의 값을 revers..
2023.03.06 -
[HackerRank/C++] Pangrams
문자열 s가 모든 알파벳을 포함하는 판그램인지 판독한다 대소문자는 무시하며 판그램일 경우 pangram, 아닐 경우 not pangram을 return한다 string pangrams(string s) { array alphabet = {}; for (size_t i = 0; i < s.size(); ++i) { if ('a'
2023.03.02