danbibibi
article thumbnail
협업을 위한 컨벤션, Gitmoji
프로그래밍/기타 2023. 9. 4. 14:06

VSCode VSCode에서 Gitmoji extension을 설치해주면, 다음과 같이 쉽게 관련 이모지를 찾을 수 있다!! CLI CLI에서는 아래와 같이 입력해서 사용 가능하다 ! # gitmoji 설치 brew install gitmoji # mac npm i -g gitmoji-cli # window (node.js 먼저 설치) gitmoji -c # git commit -m [메세지] 대신 Gitmoji 한눈에 보기 emoji code description 🎨 :art: 코드의 구조/포맷 개선 ⚡️ :zap: 성능 개선 🔥 :fire: 코드/파일 제거 🐛 :bug: 버그 수정 🚑️ :ambulance: 긴급 수정 ✨ :sparkles: 새로운 기능 📝 :memo: 문서 추가/업데이트 💄 :lip..

article thumbnail
BOJ 2230번: 수 고르기
문제 풀이/백준 2023. 9. 3. 17:38

문제 문제 바로가기> BOJ 2230번: 수 고르기 2230번: 수 고르기 N개의 정수로 이루어진 수열 A[1], A[2], …, A[N]이 있다. 이 수열에서 두 수를 골랐을 때(같은 수일 수도 있다), 그 차이가 M 이상이면서 제일 작은 경우를 구하는 프로그램을 작성하시오. 예를 들어 www.acmicpc.net 풀이 정렬과 투 포인터를 이용하여 O(nlogn) 안에 문제를 해결할 수 있다. #include #include #define MAX 100001 using namespace std; int N, M; int num[MAX]; void input() { cin >> N >> M; for (int i = 0; i > num[i]; } void solution() { ..

article thumbnail
[Git] 3. Git branch
DevOps 2023. 9. 1. 14:31

branch 란? 여러 개발자들이 동시에 다양한 작업을 할 수 있게 만들어 주는 기능 각자 독립적인 작업 영역(저장소) 안에서 마음대로 소스코드를 변경 가능 다른 브랜치와 병합함으로써, 작업한 내용을 다시 새로운 하나의 브랜치로 모을 수 있음 새 브랜치 생성하기 $ git branch $ git branch # branch 목록 확인 $ git branch -m new # 현재 branch 이름 변경 $ git branch -m old new # branch 이름 변경 $ git branch --merged # 현재 Checkout 한 브랜치에 Merge 된 브랜치 $ git branch --no-merged # 현재 Checkout 한 브랜치에 Merge 하지 않은 브랜치 브랜치 전환하기 $ git c..

article thumbnail
BOJ 16928번: 뱀과 사다리 게임
문제 풀이/백준 2023. 8. 29. 19:33

문제 문제 바로가기> BOJ 16928번: 뱀과 사다리 게임 16928번: 뱀과 사다리 게임 첫째 줄에 게임판에 있는 사다리의 수 N(1 ≤ N ≤ 15)과 뱀의 수 M(1 ≤ M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에는 사다리의 정보를 의미하는 x, y (x < y)가 주어진다. x번 칸에 도착하면, y번 칸으 www.acmicpc.net 풀이 사다리와 뱀 정보를 path 배열에 저장해주고, BFS를 통해 문제를 해결할 수 있다. BFS를 진행하는 이유는 "100번 칸에 도착하기 위해 주사위를 굴려야하는 횟수의 최솟값"을 구해야하기 때문이다. #include #include #define MAX 101 using namespace std; int N, M; int path[MAX]; bool ..

article thumbnail
[C++] Standard Template Library - STL
언어/C, C++ 2023. 8. 24. 13:34

C++ 템플릿 라이브러리(STL)라고 하면 보통 다음 세 개의 라이브러리를 의미함 임의 타입의 객체를 보관할 수 있는 컨테이너 (container) 컨테이너에 보관된 원소에 접근할 수 있는 반복자 (iterator) 반복자들을 가지고 일련의 작업을 수행하는 알고리즘 (algorithm) 시퀀스 컨테이너 시퀀스 컨테이너 (sequence container) : 배열 처럼 객체들을 순차적으로 보관 연관 컨테이너 (associative container) : 키를 바탕으로 대응되는 값을 찾아줌 vector 가변 길이의 배열이라고 볼 수 있음 원소들이 메모리 상에서 실제로 순차적으로 저장되어 있음 따라서 임의의 위치에 있는 원소에 매우 빠르게 접근할 수 있음 #include #include using names..

article thumbnail
[C++] 객체 지향 프로그래밍
언어/C, C++ 2023. 8. 16. 16:02

객체 instance variable(변수)와 instance method로 구성 추상화(abstraction) : 컴퓨터 상에서 현실 세계를 100% 나타낼 수 없기 때문에, 적절하게 컴퓨터에서 처리할 수 있도록 바꾸는 것 캡슐화(encapsulation) : 외부에서 직접 인스턴스 변수의 값을 바꿀 수 없고 항상 인스턴스 메소드를 통해서 간접적으로 조절하는 것 캡슐화의 장점 객체가 내부적으로 어떻게 작동하는지 몰라도 사용할 줄 알게 된다!! 클래스 객체의 설계도 클래스를 이용해서 만들어진 객체 = 인스턴스 Animal:: Aniaml 클래스에 정의된 함수임을 의미 #include class Animal { private: int food; int weight; public: void set_anima..

article thumbnail
[C++] new, delete
언어/C, C++ 2023. 8. 14. 12:35

new = c 언어의 malloc delete = c 언어의 free // type* pointer = new type; #include int main() { int* p = new int; *p = 10; std::cout > list[i]; } for (int i = 0; i < arr_size; i++) { std::cout

article thumbnail
[C++] 참조자(reference)
언어/C, C++ 2023. 8. 14. 11:01

참조자(reference) C++에서 다른 변수나 상수를 가리키는 또 다른 방법 C 에서는 어떠한 변수를 가리키고 싶을 땐 반드시 포인터를 사용했음 참조자는 가리키고자 하는 타입 뒤에 &를 붙여 표현 참조자는 정의 시에 반드시 누구의 별명인지를 명시해야 함 int& // int형 변수의 참조자 double& // double형 변수의 참조자 int*& // int* (int형 포인터) 타입의 참조자 int& another_a; // 불가능 int& another_a = a; // 가능 int* p; // 포인터의 경우는 가능 한번 어떤 변수의 참조자가 되버린다면, 더이상 다른 변수를 참조할 수 없음 int a = 10; int &another_a = a; // another_a 는 이제 a 의 참조자! ..

article thumbnail
[C++] namespace
언어/C, C++ 2023. 8. 11. 14:04

다음은 hello, world! 를 출력하는 간단한 cpp 프로그램이다. #include int main() { std::cout

article thumbnail
[Git] 2. Git 기초
DevOps 2023. 8. 9. 09:45

Git 저장소 만들기 저장소를 사용하는 방법에는 주로 아래 2가지 방법이 있다. 아직 버전관리를 하지 않는 로컬 디렉토리 하나를 선택해서 Git 저장소를 적용하는 방법 다른 어딘가에서 Git 저장소를 Clone 하는 방법 기존 디렉토리를 Git 저장소로 만들기 버전관리를 하지 아니하는 기존 프로젝트를 Git으로 관리하고 싶은 경우 사용 $ cd /c/user/my_project $ git init $ git add *.c $ git add LICENSE $ git commit -m 'initial project version' 기존 저장소를 clone 하기 다른 프로젝트에 참여하려거나(Contribute) Git 저장소를 복사하고 싶은 경우 사용 $ git clone # 예시 # git clone htt..

article thumbnail
BOJ 1347번: 미로 만들기
문제 풀이/백준 2023. 8. 8. 21:56

문제 문제 바로가기 > BOJ 1347번: 미로 만들기 1347번: 미로 만들기 홍준이는 미로 안의 한 칸에 남쪽을 보며 서있다. 미로는 직사각형 격자모양이고, 각 칸은 이동할 수 있거나, 벽을 포함하고 있다. 모든 행과 열에는 적어도 하나의 이동할 수 있는 칸이 있다. 홍 www.acmicpc.net 풀이 미로의 어느 지점에서 이동을 시작할지 모르기 때문에 maze 크기를 101로 잡아주었다. 시뮬레이션을 통해 방문한 곳은 true로 변경해주고, 이후 boundary를 찾아 미로를 출력해준다! #include #define MAX 101 using namespace std; struct HJ {int y=50, x=50, d=2;} hj; // 홍준 int moveCnt; string content; ..

article thumbnail
[Git] 1. 시작하기
DevOps 2023. 7. 24. 10:58

버전 관리란? 버전 관리 시스템 (VCS - Version Control System) 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템 버전 관리 시스템 장점 각 파일 또는 프로젝트를 통째로 이전 상태로 되돌릴 수 있음 시간에 따라 수정 내용을 비교해 볼 수 있음 누가 문제를 일으켰는지 추적할 수 있음 누가 언제 만들어낸 이슈인지 알 수 있음 파일을 잃어버리거나 잘못 고쳤을 때 쉽게 복구할 수 있음 로컬 버전 관리 버전 관리 공유하지 않음 중앙집중식 버전 관리 (CVCS) 한 지점의 저장소를 공유하여 협업 중앙에서 관리 및 통제, 저장소는 병목지점 중앙 데이터베이스가 있는 하드디스크에 문제가 생기면 프로젝트의 모든 히스토리를 잃게 됨 분산 버전 관리 시스템 (D..

article thumbnail
[C] 포인터
언어/C, C++ 2023. 6. 29. 11:37

포인터 다른 변수, 혹은 그 변수의 메모리 공간주소를 가리키는 변수 포인터도 하나의 타입 메모리에 직접 접근, 제어 가능 (즉, 포인터 = 메모리 주소와 연관되어 있는 문법) 포인터 변수의 크기는 운영체제의 bit 수에 따라 달라짐 32bit(4byte) / 64bit(8byte) NULL, nullptr 키워드를 이용하여 초기화 가능 초기화가 이루어지지 않는 경우, 임의로 저장된 주소의 값에 마음대로 접근해서 변경해버리면, 최악의 상황에는 프로그램 메모리가 꼬여서 프로그램이 날아갈 수 있기 때문에 초기화가 중요! char *pc = NULL; // char형 변수의 주소 값 int *pi = nullptr; // int형 변수의 주소 값 double *pd; // double형 변수의 주소 값 포인터 ..

article thumbnail
SWEA 1230번: 암호문3
카테고리 없음 2023. 6. 4. 20:33

문제 문제 바로가기> SWEA 1230번: 암호문3 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 head와 tail을 dummy node로 이용하여 연결리스트를 쉽게 관리할 수 있다. #include using namespace std; struct Node{ Node *prv = NULL; Node *nxt = NULL; int data; }; Node *head, *tail; // dummy node 이용 void input(){ int N, data; cin >> N; // init head = new Node(); tail = new Node(); head->nxt = tail; tail->pr..

article thumbnail
BOJ 9207번: 페그 솔리테어
문제 풀이/백준 2023. 5. 16. 00:14

문제 문제 바로가기> BOJ 9207번: 페그 솔리테어 9207번: 페그 솔리테어 각 테스트 케이스에 대해서, 핀을 움직여서 남길 수 있는 핀의 최소 개수와 그 개수를 만들기 위해 필요한 최소 이동 횟수를 출력한다. www.acmicpc.net 풀이 문제가 잘 이해되지 않았다,, 푸는 것보다 이해하는 데 오래 걸렸다 ,, 테스트 케이스 1번에 대해 다음과 같이 핀이 3번 이동하는 것이다!! ###...### ..oo..... .....oo.. ......... ###...### ###...### ....o.... ....o.... ......... ###...### ###...### ....o.... ......... ......... ###...### #include #define R 5 #define..