전체 글 19

[Git] Git 커밋 덮어쓰기

저번엔 작업한 내용을 완전히 삭제하는 방법에 대해 글을 썼지만, 이번엔 오타나 사소한 수정같은 경우 history를 남기면서 작업하는건 상당히 깔끔해보이지 않기 때문에, 이번엔 커밋 덮어 쓰는 방법에 대해 글을 적습니다.1. 가장 최근 커밋 덮어쓰기: git commit --amend가장 흔하게 쓰이는 방법으로, 방금 만든 직전 커밋을 통째로 갈아 끼우거나 수정할 때 사용합니다.상황 A: 깜빡하고 빼먹은 파일이 있을 때Bash git add 빼먹은파일.javagit commit --amend --no-edit # 메시지는 그대로 두고, 방금 커밋에 파일만 쏙 집어넣어 덮어씀상황 B: 커밋 메시지를 오타 없이 고치고 싶을 때Bash git commit --amend -m "수정된 올바른 커밋 메시지"2...

카테고리 없음 2026.09.08

[Git] Git 커밋 내역 및 작업 내용 삭제/초기화 명령어 총정리

Git으로 작업하다 보면, History가 더럽혀지는 꼴을 보지 못하는 사람들에게 유용한 Git Bash 명령어들을 정리해 드립니다.1. 최근 커밋 삭제하기 (git reset)git reset 명령어 뒤에 붙는 옵션(--soft, --mixed, --hard)에 따라 작업 중인 파일의 보존 여부가 달라집니다.① 커밋만 취소하고 작업 내역은 그대로 유지하기 (--soft / 기본값)코드 수정 내역은 남겨둔 채 커밋 상태만 취소하고 싶을 때 사용합니다.# 가장 최근 커밋 1개 취소 (수정 파일은 Staging 상태 유지)git reset --soft HEAD~1# 가장 최근 커밋 1개 취소 (수정 파일은 Unstaged 상태로 변경)git reset HEAD~1② 커밋 내역과 작업 파일 모두 완전히 삭제하..

Git 2026.08.31

맨해튼 거리(Manhattan Distance)

맨해튼 거리란?맨해튼 거리는 두 점 사이의 가로와 세로 이동 거리만을 고려해 계산하는 방식이다.도시 블록처럼 격자 구조에서 직선이 아닌, “블록 따라 이동하는 거리”를 수학적으로 표현한 개념이다. 공식 표현두 점 A(x₁, y₁), B(x₂, y₂)가 있을 때: 맨해튼 거리 = |x₁ − x₂| + |y₁ − y₂| 즉, x 좌표 차이의 절대값과 y 좌표 차이의 절대값을 더해 거리를 구한다. 예를 들어, A(2, 3) → B(5, 1)인 경우,|2 − 5| = 3 (가로 이동)|3 − 1| = 2 (세로 이동)총 거리 = 3 + 2 = 5맨허튼 거리는 게임 (타일 기반 거리)와 알고리즘 (휴리스틱, 탐색)에 주로 사용된다.#include #include using namespace std;int main..

C++/알고리즘 2025.08.22

소수 구하기

소수란?소수는 1과 자기 자신만을 약수로 가지는 수를 의미한다.예를 들어 7의 약수는 1과 7뿐이므로 7은 소수이다.반면 8은 1, 2, 4, 8을 약수로 가지므로 소수가 아니다.소수를 구하는 방법1. 직접 나눗셈 (시간 복잡도: O(N))2부터 N-1까지 모든 수로 나누어보아어떤 수로도 나누어떨어지지 않으면 소수라고 판단할 수 있다.하지만 수가 커질수록 연산량이 많아지는 비효율적인 방법이다.#include using namespace std;int main(){ int n; cin >>n; if (n 2. 제곱근까지만 나눗셈 (시간 복잡도: O(√N))소수가 아닌 수는 두 수의 곱으로 표현되는 합성수다.즉, N = a × b라고 하면, a와 b는 모두 1과 N 사이의 자연수이고a와 b가 모두 √N보다 ..

C++/알고리즘 2025.07.16

5주차 구조체와 함수(24.12.31)

5-1 구조체 선언과 객체 생성구조체 선언 Type1struct Score{ const char* strName; int nKor; int nEng; int nMath; double fAverage;};int main(){ struct Score Student1; struct Score* pStudent2 = new struct Score; //정적 개체 사용 Student1.strName = "KsKim"; Student1.nMath = 95; Student1.nKor = 85; Student1.nEng = 75; //동적 개체 사용 pStudent2->strName = "UsChoi"; pStudent2->nMath = 100; pStudent2->nKor = 80; pStudent2->nEng = ..

4주차 pointer와 배열(24.12.30)

4-1 pointer와 참조자&연산자의 4가지 기능주소 연산자 : 변수 데이터가 저장된 메모리 주소(& 변수명)참조자 : 실제 변수이름 대신에 또 다른 이름 선언, 같은 위치의 메모리 위치 참조int a = 10; int &b = a; //a와 b의 값은 동일한 10bit연산(AND) : &논리연산(AND) : &&참조자, pointer, 배열참조자 : 기 선언된 변수의 또 다른 이름& 기호 사용둘 중 어느 하나라도 데이터가 변하면 동시에 변함pointer : 데이터가 저장된 메모리 주소*기호 사용메모리 주소가 같으면, 같은 주소를 지칭하는 변수의 데이터는 동시에 변함배열 : 같은 이름을 갖는 여러 개의 변수를 하나로 통합한 묶음pointer의 선언 기본형식int main(){ int nData = 10..

3주차 조건문과 반복문(24.12.27)

3-1 제어문(if-else, switch-case)if-else 조건문int main(){ int nA, nB, nC; cout > nA; cout 0) { nB = nA + 10; cout 출력값 switch-case 조건문int main(){ int nScore; char chLevel; cout > nScore; cout = 90) chLevel = 'A'; else if (nScore >= 80) chLevel = 'B'; else if (nScore >= 70) chLevel = 'C'; else if (nScore >= 60) chLevel = 'D'; else chLevel = 'C'; cout 출력값int main(){ int nNu..

2주차 데이터 처리와 연산(24.12.26)

2-1 데이터 입력을 위한 cin과 문자열 기본 개념scanf를 사용한 함수 이용 데이터 입력#include scanf(" 형식1 형식2 ....", &변수1, &변수2 ...);Visual Studio에서 scanf를 사용하려면 아래의 코드를 입력해야한다.#define _CRT_SECURE_NO_WARNINGSint main(){ int nX, nY; char chData; char strData[6]; printf(" 정수와 문자, 문자열을 입력하세요. \\n"); scanf("%d %d %c %s", &nX, &nY, &chData, &strData); printf("정수1 = %d, 정수2 = %d, 문자 = %c, 문자열 = %s \\n",..

1주차 과목소개와 프로그래밍 언어 구성 요소(24.12.25)

1-1 언어의 특징C++언어 소개1972년, 미국의 벨 연구소에서 시스템 프로그래머인 Dennis Ritchie가 C언어를 개발C언어는 하드웨어를 직접 제어 장점으로 사용자가 급속히 증가복잡한 프로그램에서 오류를 검출이 난해Bjarne Stroustrup가 구조체를 확장하여 class 도입하여 이 문제를 해결C++언어 구성C언어의 절차적 프로그래밍class로 기반으로 하는 객체지향 프로그래밍템플릿으로 대표하는 일반화 프로그래밍C언어의 특징프로그램 명령이 순서에 따라 절차적으로 동작구조체와 함수 등을 포함하고 있어서 프로그램을 구현하기 수월고급 프로그램에서 실제로 동작하는 코드하드웨어 직접 제어Window, Linux 등 운영체제 OS에서 동작포인터 기능으로 대용량 데이터 처리에서 효율적인 메모리 관리 C..

유니티 - 유한 상태 머신(FSM)

상태패턴(State Pattern) 이란?상태패턴은 객체의 상태를 클래스로 분리하고, 상태에 따라 다른 동작을 수행하게 만드는 디자인 패턴이다.쉽게 말해, if-else 나 switch 로 상태를 구분하는 대신, 각 상태를 클래스로 만들어서 상태 자체가 행동을 가지게 만드는 방식이다.public interface IState{ void Enter(); void HandleInput(); void Update(); void PhysicsUpdate(); void Exit();}이런 식으로 상태 인터페이스를 만들고 각 상태마다 이걸 구현하면 훨씬 유연하게 코드를 짤 수 있다. 유한 상태 머신(Finite State Machine)이란?FSM은 유한한 수의 상태들을 가진 시스템이다...

유니티 2025.04.17