commit을 하면 그 프로젝트의 버전을 통째로 옮기는 것!?한 수업에서 강사님께서 이렇게 말씀하셨다. 이 말처럼, 커밋을 들어가 browse files 하면 ? 그 당시의 프로젝트의 상태, 버전을 확인할 수 있다.그렇다면 Git은 모든 프로젝트를 새롭게 저장하는 걸까? -> 당연히 아니다. Git의 저장 방식은 효율적이고 강력한 버전 관리를 가능하게 하며,이는 스냅샷(Snapshot)과 델타(Delta, Δ 변화량)의 개념을 결합하여 이루어진다. 1. 스냅샷(Snapshot)Git은 각 커밋 시점에서 프로젝트의 모든 파일을 스냅샷으로 저장함. 그러나 모든 파일을 매번 복사하지 않음. 변경된 파일만 새롭게 저장하고, 변경되지 않은 파일은 이전 커밋의 데이터를 참조함.예를 들어, 100개의 파일이 있는 프..
분류 전체보기
GIT로컬 시스템GIT: 내 컴퓨터 안에서 버전 관리. 깃허브와 소통 (백업, 복구, ...)GITHUB: 원격 컴퓨터에서 백업 담당하는 시스템. 내 컴퓨터와 별도로 버전 관리. 다른 컴퓨터와 깃허브를 통해 협업 git installhttps://git-scm.com/ Git git-scm.comOS에 맞게 깃 설치git --version으로 확인 가능 쉘(Shell)셸 (Shell): 운영체제에서 사용자와 시스템 간의 인터페이스 역할을 하는 프로그램.사용자는 쉘을 통해 시스템 명령어를 입력하고, 쉘은 이 명령어를 해석하여 운영체제에서 실행할 수 있는 형태로 변환한다.왜 Shell이라는 이름을?- 사용자와 운영체네 내부(커널) 사이의 인터페이스를 감싸는 층- 껍데기를 통해서 안에 있는 내용물에 접근한다는..
.DS_Store 파일이란?.DS_Store는 macOS에서 자동으로 생성되는 숨김 파일이다.이 파일은 Desktop Services Store의 약자로, Finder(파일 탐색기)에서 디렉토리의 메타데이터를 저장하는 데 사용된다.여기에는 폴더의 아이콘 위치, 창 크기, 창 배경 이미지 등 폴더의 뷰 설정과 관련된 정보가 포함된다..DS_Store 파일은 사용자가 폴더를 열거나, 특정 방식으로 정렬하는 등의 작업을 할 때마다 생성되며, 폴더마다 하나씩 존재할 수 있다.이 파일은 macOS에서만 사용되며, 다른 운영체제에서는 불필요하거나, 때로는 불편을 줄 수 있다..DS_Store 파일 지우는 법1. 개별적으로 지우기터미널에서 다음 명령어를 사용해 특정 디렉토리 내의 .DS_Store 파일을 삭제할 수 ..
프로젝트란?하나의 프로그램을 만들기 위한 일련의 프로세스.기획, 설계, 소스 코드 구현, 테스트, 배포 등 프로그램을 만들기 위한 모든 과정많은 협업이 필요할 때도 있다.-> 협업을 잘하기 위해서는 코드, 문서 공유 등을 통한 소통이 중요하다! 개발자의 필수 역량이며 프로젝트의 성공을 좌우한다. README의 역할1. 완성된 프로그램의 설명서프로그램 사용 방법레퍼런스2. 구현중인 프로젝트의 현황구현된 주요 기능구현 현황코드가 해결해야하는 문제 등 Markdown 작성법1. 순서가 있는 목록- 순서가 없는 목록_기울여_**굵게****_기울여 굵게_**# 제목 1~6단계개행은 역슬래쉬 \\ ( -> 깃허브, 디스코드에선 다르게 사용 )백틱 3개```프로그래밍 코드는 줄의 제일 앞에 공백 4칸 이상 띄워서 ..
이진 트리를 입력 받아 preorder traversal, inorder traversal, postorder traversal한 결과를 출력하는 프로그램 풀이 1: tree를 딕셔너리로 표현, 재귀 이용import sysinput = sys.stdin.readlinen = int(input().strip())tree = {}for _ in range(n): parent, left, right = input().split() tree[parent] = (left, right)root = 'A'def preorder(tree, node): if node == '.': return "" return node + preorder(tree, tree[node][0]) + pre..
각 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때, 인접한 집들이 같은 색이 되지 않도록 하면서 모든 집을 칠하는 최소 비용을 구하는 문제-> DP 테이블을 2차원 리스트로 정의하여 풀 수 있다. 풀이동적 프로그래밍 테이블 정의:dp[i][j]: i번째 집을 j색으로 칠하는 최소 비용 (j = 0: 빨강, 1: 초록, 2: 파랑)점화식 설정:dp[i][0] = cost[i][0] + min(dp[i-1][1], dp[i-1][2]) (i번째 집을 빨강으로 칠하는 경우)dp[i][1] = cost[i][1] + min(dp[i-1][0], dp[i-1][2]) (i번째 집을 초록으로 칠하는 경우)dp[i][2] = cost[i][2] + min(dp[i-1][0], dp[i-1][1]) (i번째 ..
문제 요약MBTI 성격 유형을 가진 학생들 사이의 심리적인 거리를 계산하는 문제이다. 주어진 학생들 중 가장 가까운 세 학생의 심리적인 거리를 구하는 것이 목표이다.입력첫 줄에는 테스트 케이스의 수를 나타내는 정수 ( T )가 주어진다.각 테스트 케이스의 첫 줄에는 학생의 수를 나타내는 정수 ( N )이 주어지며, 두 번째 줄에는 각 학생의 MBTI 성격 유형을 나타내는 문자열들이 공백을 두고 주어진다.출력각 테스트 케이스에 대한 답을 정수 형태로 한 줄에 하나씩 출력한다. 풀이 설명이 문제는 세 학생의 MBTI 유형 간의 심리적 거리를 구하는 문제이다. MBTI는 4개의 척도로 구성되어 있으므로 총 16개의 유형이 있다. 세 학생 간의 심리적 거리는 세 유형 간의 심리적 거리의 합으로 정의된다.문제에서..
문제 요약도연이는 캠퍼스에서 만날 수 있는 친구의 수를 알고 싶어한다. 캠퍼스는 ( N \times M ) 크기이며, 도연이는 빈 공간('O')과 사람('P')이 있는 곳으로 이동할 수 있다. 벽('X')은 이동할 수 없다. 도연이가 시작하는 위치는 'I'로 주어진다. 도연이가 만날 수 있는 사람의 수를 출력하는 프로그램을 작성하는 문제이다.입력첫 번째 줄에 캠퍼스의 크기를 나타내는 두 정수 ( N )과 ( M )이 주어진다.다음 ( N )개의 줄에 캠퍼스의 정보가 주어진다. 'O'는 빈 공간, 'X'는 벽, 'I'는 도연이의 시작 위치, 'P'는 사람이다.출력도연이가 만날 수 있는 사람의 수를 출력한다. 만약 아무도 만나지 못한 경우 "TT"를 출력한다. 풀이 설명이 문제는 BFS(너비 우선 탐색)를..
문제 요약지도에서 각 지점에 대해 목표 지점(값이 2인 지점)까지의 거리를 구하는 문제이다. 지도는 가로와 세로로만 움직일 수 있으며, 0은 갈 수 없는 땅, 1은 갈 수 있는 땅, 2는 목표 지점을 의미한다. 풀이 설명이 문제는 너비 우선 탐색(BFS)를 사용하여 각 지점에서 목표 지점까지의 최단 거리를 구하는 문제이다.BFS는 최단 거리를 구하는 데 적합한 알고리즘이다. from collections import dequeimport sysinput = sys.stdin.readlinen, m = map(int, input().split())graph = [list(map(int, input().split())) for _ in range(n)]def bfs(graph, n, m): distan..
문제 요약N+1개의 I와 N개의 O로 이루어진 문자열을 PN이라고 한다. 예를 들어, P1은 "IOI", P2는 "IOIOI", P3는 "IOIOIOI"이다. 주어진 문자열 S 안에 PN이 몇 번 포함되어 있는지 찾는 프로그램을 작성하는 문제이다. 풀이 설명문제의 본질은 문자열 S 안에 PN 패턴이 몇 번 포함되어 있는지를 찾는 것이다.이를 위해 문자열을 순회하면서 IOI 패턴을 찾고, N개의 IOI 패턴이 연속적으로 등장할 때마다 카운트를 증가시키는 방식으로 해결할 수 있다. N = int(input())M = int(input())S = input()def count_pn(N, S): pattern_count = 0 i = 0 count = 0 while i 코드 설명변수 초기..