전체 글 118

[Git] 깃 명령어

명령어 의미 git reset HEAD 파일 이름 (= git reset HEAD file.txt) file.txt를 스테이지(저장소 - 커밋 전 단계)에서 내림 => 작업 트리로 되돌아감 HEAD^ 최신 커밋 되돌리기 (최신 커밋 취소) => 바로 이전 최신 커밋이 최신으로 변경됨 => 작업 트리로 되돌아감 옵션 --soft HEAD^ 최근 커밋 하기 전 상태로 작업 트리를 되돌림 --mixed HEAD^ 최근 커밋, 스테이징 하기 전 상태로 작업 트리를 되돌림 => 옵션 없이 사용 시, 기본 동작 --hard HEAD^ 최근 커밋, 스테이징, 파일 수정 전 상태로 작업 트리를 되돌림 => 되돌린 내용은 복구 불가 커밋 해시 (= git reset 커밋 해시) 최신 커밋을 해당 커밋 해시로 설정 => ..

Git 2021.10.15

[Python] 정규표현식

정규표현식 의미 \d 숫자 \w 문자, 숫자, _ (특수문자 X) + 연결된 \d+ 1 이상 연결된 숫자 * 0개 이상 [1-9]\d* 첫 자리 1~9 중 하나이고, 숫자가 0개 이상 (= 자연수) ? 있을 수도, 없을 수도 -? -이 있을 수도, 없을 수도 [- ]? -나 공백이 있을 수도, 없을 수도 {num} 연속 num번 나옴 \d{3} 숫자가 연속 3번 나옴 {num1, num2} num1부터 num2까지 반복 \w{3, 4} 문자가 3 ~ 4번 연속 나옴 [a, b, c] a, b, c만 추출 [a-z] a부터 z까지 글자를 모두 선택 (하나씩 나옴 -> 알파벳) [a-z]+ a부터 z까지 글자를 모두 선택 (연속된 문자 나옴 -> 단어) [가-힣]+ 한글 출력 \s 공백 문자 (스페이스, 탭..

Python 2021.10.15

[책 리뷰] Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문

Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문 저자 이고잉, 고경희 출판사 이지스 퍼블리싱 출간일 2019년 12월 06일 Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문 - YES24 생활코딩 강의에서 52개를 엄선, 한 권 안에 자주 쓰는 기능은 모두 담았다.문서 지옥, 깃&깃허브로 하루 안에 탈출한다!본서는 대학생, 개발자, 일반 사무직까지. 문서 지옥에 빠진 모두를 위한 www.yes24.com 더보기 이전 회사에서 깃(+ 레드마인)을 쓴 경험이 있다. 기존에는 소스세이프를 사용했다. 소스 세이프는 체크아웃 한 사람만 사용할 수 있었다. 이 때문에 누군가 사용 중인 파일에 추가 및 수정한 내용을 적용하려면 먼저 사용하던 사람이 처리해 줘야 적용할 수 있었다. 그리고 회사에서는 깃을 업..

책 리뷰 2021.10.15

[프로그래머스] Level1) 제일 작은 수 제거하기

문제 설명 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. 제한 조건 arr은 길이 1 이상인 배열입니다. 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. 풀이 과정 (자바) 가장 작은 수를 제거한 배열이라고 했으므로, 우선 arr.length - 1로 answer 배열을 초기화했다. 그리고 arr.length가 1일 때는 -1을 리턴하라고 했으므로, -1 값을 넣었다. arr.length가 1이 아닌 경우 (2 이상인 경우), 먼저 ..

[프로그래머스] Level1) 짝수와 홀수

문제 설명 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. 제한 조건 num은 int 범위의 정수입니다. 0은 짝수입니다. 풀이 과정 (자바) 삼항 연산자를 통해 처리했다. 입력받은 수를 2로 나눴을 때, 나머지가 0으로 떨어지면 Even, 아니면 Odd가 출력되도록 처리했다. 결과 다른 사람의 풀이 대체로 비슷하게 처리해서 추가하지 않았다. 기타 이전에 삼항 연산자가 있었다는 걸 잊지 않고, 이번에 적용했다. return 부분에 한 줄로 처리하면서 코드가 간략하게 작성되었다. 당장 if문을 쓸 생각부터 하지 말고, 다른 방법도 있는지 한 번 더 생각해 보고 진행해야겠다.

[프로그래머스] Level1) 최대공약수와 최소공배수

문제 설명 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. 제한 조건 두 수는 1이상 1000000이하의 자연수입니다. 풀이 과정 (자바) 기존에 int형 배열을 반환하게 되어 있었으나 입력받는 수가 1000000, 999999인 경우, int형 범위가 넘어가 버려 long 형으로 변경했다. answer[0]에는 최대공약수, answer[1]에는 최소공배수 값을 넣었다. 입력받는 수는 1이상 1000000이하의 자연수를 받는다고 되어있다. 2부터 ..

[IT 지식] 유클리드 호제법 (Euclidean algorithm)

유클리드 호제법(-互除法, Euclidean algorithm) 또는 유클리드 알고리즘은 2개의 자연수 또는 정식(整式)의 최대공약수를 구하는 알고리즘의 하나이다. 호제법이란 말은 두 수가 서로(互) 상대방 수를 나누어(除)서 결국 원하는 수를 얻는 알고리즘을 나타낸다. 2개의 자연수(또는 정식) a, b에 대해서 a를 b로 나눈 나머지를 r이라 하면(단, a>b), a와 b의 최대공약수는 b와 r의 최대공약수와 같다. 이 성질에 따라, b를 r로 나눈 나머지 r'를 구하고, 다시 r을 r'로 나눈 나머지를 구하는 과정을 반복하여 나머지가 0이 되었을 때 나누는 수가 a와 b의 최대공약수이다. 이는 명시적으로 기술된 가장 오래된 알고리즘으로서도 알려져 있으며, 기원전 300년경에 쓰인 《원론》 제7권, ..

기타/IT 지식 2021.10.13

[프로그래머스] Level1) 콜라츠 추측

문제 설명 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 입력된 수가 6이라면 6→3→10→5→16→8→4→2→1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야하는지 반환하는 함수, solution을 완성해 주세요. 단, 작업을 500번을 반복해도 1이 되지 않는다면 –1을 반환해 주세요. 제한 조건 입력된 수, num은 1 이상 8000000 미만인 정수입니다. 풀이 과정..

[프로그래머스] Level1) 평균 구하기

문제 설명 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요. 제한 조건 arr은 길이 1 이상, 100 이하인 배열입니다. arr의 원소는 -10,000 이상 10,000 이하인 정수입니다. 풀이 과정 (자바) arr의 원소 개수를 알기 위해 임의로 cnt라는 int형 변수를 만들었다. 평균값을 구하기 위해서 arr의 원소를 다 더한 후, 개수만큼 나눠주면 된다. for문을 돌면서 answer에 i를 더했다. 그리고 마지막에 cnt(arr의 원소 개수)로 answer을 나눴다. 결과 다른 사람의 풀이 java.util.Arrays를 추가했다. Arrays.stream으로 이용해 arr의 값을 스트림으로 받아 평균을 구했다. 그리고 만약 그 값이 null인 경..