일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- D2
- 법의학
- 프로그래머스
- algorithm
- 알고리즘
- 자료구조
- Programmers
- 감상문
- 백준
- algogritim
- BOJ
- data structure
- db
- OS
- SW Expert Academy
- 문제풀이
- cs
- Computer Science
- 데이터베이스
- 재테크/투자
- Database
- c++
- network
- 네트워크
- 운영체제
- LeetCode
- language
- D3
- 독서
- swea
- Today
- Total
목록전체 글 (144)
선택은 나의 것

이 문서는 마크다운으로 작성되었으며 github 스타일에 최적화되어있습니다. github 링크를 통한 열람을 권장합니다. 표준 템플릿 라이브러리(STL : Standard Template Library) 프로그램에 필요한 알고리즘, 컨테이너, 함수자, 반복자를 Template으로 제공하는 라이브러리이다. C++ template을 통해 제네릭(generic)한 프로그래밍이 가능하다. STL의 대표적인 컨테이너인 vector도 template를 통해 만들어진 것을 볼 수 있다. 템플릿(Template)이란? 함수나 클래스를 개별적으로 다시 작성하지 않고도, 여러 자료형에서 동작할 수 있게 한다. 함수 템플릿(Function Template) 함수의 기능은 명확하지만, 자료형을 모호하게 두는 것. 예를 들어 ..
이 문서는 마크다운으로 작성되었으며 github 스타일에 최적화되어있습니다. github 링크를 통한 열람을 권장합니다. 바이트 패딩(Byte Padding) 바이트 패딩이란 클래스나 구조체에 패딩 바이트를 추가하여 CPU 접근을 더 용이하게 해 주는 것을 말합니다. 자칫 공간 낭비처럼 보일 수 있는 불필요한 패딩 공간을 확보하면서까지 메모리의 크기를 맞추는 이유는 캐시 hit율을 높여 cpu의 연산 횟수를 줄이기 위해서이다. struct test { int a; // 4byte char c1; // 1byte char c2; // 1byte double d; // 8byte short s; // 2byte }; int main() { std::cout
문제 Programmers 다단계 칫솔 판매 : https://programmers.co.kr/learn/courses/30/lessons/77486 코딩테스트 연습 - 다단계 칫솔 판매 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, programmers.co.kr 코드 #include #include #include #define endl "\n" using namespace std; vector member[10010], answer, zero; map m; map sell; int number; vector dfs(int x) { vector re; for (int..
문제 Programmers 로또의 최고 순위와 최저 순위 : https://programmers.co.kr/learn/courses/30/lessons/77484%EF%BB%BF 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 접근 문제에 접근한 방식 #태그 쓰는거 잊지 말기! 코드 #include #include #include #define endl "\n" using namespace std; vector solution(vector lottos, vecto..
문제 BOJ 17609 : https://www.acmicpc.net/problem/17609 17609번: 회문 각 문자열이 회문인지, 유사 회문인지, 둘 모두 해당되지 않는지를 판단하여 회문이면 0, 유사 회문이면 1, 둘 모두 아니면 2를 순서대로 한 줄에 하나씩 출력한다. www.acmicpc.net 접근 문자열 S에 대해 앞에서부터 보는 포인터 p1과 뒤에서부터 보는 포인터 p2를 전진시키며 펠린드롬인지 확인한다. 이때 같지 않을 경우 유사 펠린드롬인지 확인하기 위해 chk 변수를 만들어서 확인해 주었다. 코드 #include #define endl "\n" using namespace std; string s; int palin(int p1, int p2, int chk) { if (p1 > ..
이 문서는 마크다운으로 작성되었으며 github 스타일에 최적화되어있습니다. github 링크를 통한 열람을 권장합니다. 동적 메모리 할당(Dynamic Memory Allocation) 프로그램의 실행 시간 동안 사용자가 직접 사용할 메모리의 공간이나 시점을 결정하여 할당하는 것을 말한다. 이렇게 할당받은 메모리는 프로세스의 힙(heap) 영역에서 할당하며, 프로세스가 실행되는 동안 이 영역은 유지되므로 사용이 끝나면 메모리 낭비를 줄이기 위해 명시적으로 할당을 해제해주어야 한다. 동적 할당의 방법으로는 C++에서 new와 malloc이 있다. (C의 경우 malloc만 가능) new / delete 연산자를 통한 동적 할당 // int(4byte)의 크기만큼 heap 영역에 동적으로 메모리 할당 in..