Blog blog = new Korea()

분류 전체보기 119

[Git] Git commit 메세지 Prefix를 자동화하기

매번 붙히기 귀찮잖아.. 😅 요즘 시간이 나면 예전 프로젝트를 리팩토링하려고 생각하고 있다. 지난 번에는 주말에 잠깐 시간이 나서 application.properties를 조금 수정하려고 들여다봤다. 이번 주말에는 잠깐 카페에 가서 소스코드를 들여다보려고 했는데, 문득 commit 메세지를 작성할 때, 자꾸 [REFACTOR]: 를 붙히는 것이 너무 귀찮다는 생각이 들었다. 그래서 이를 자동화 할 수 있을까라는 생각이 들어 좀 찾아보니 잘된다.prepare-commit-msg?~/.git/hooks 라는 폴더에 들어가보면, 여러 파일이 존재한다. 그중 prepare-commit-msg라는 파일을 이용하면 commit 메세지의 Prefix를 자동화가 가능하다.#!/bin/bashCOMMIT_MSG_FI..

CICD/Git 2025.05.19

[백준] 2750 수 정렬하기

최근 정렬 알고리즘 공부를 하고 있겠다.. 간단한 정렬 문제를 시도했다.계수정렬로 시도해볼까 하다가, 단순히 연결되는 수에 대한 정렬이 아니라 임의로 들어오는 수들에 대해서 정렬을 해야해서 그냥 일반적인 정렬로 풀었다.중간에 ‘수는 중복되지 않는다’ 라는 말을 중복된 수는 제거하라는 말인줄 알아서.. 중복을 제거하는 걸 고민했었더랬다…Python사실 아래처럼 푸는 거보다 그냥 sort 메소드가 있는 패키지를 이용하는게 빠르긴 하다. 그냥 정렬 구현을 위해 풀어봤다.N = int(input())T = set([])data = []def dataSort(a, b): if(data[a] > data[b]): temp = data[a] data[a] = data[b] ..

알고리즘 2025.05.01

[알고리즘] 계수정렬

간만에 하는 블로깅이다.블로그를 꾸준히 써야한다는 건 머리로는 알고 있는데, 막상 일에 치이다보면 어느새 까먹곤 한다. 🥲계수정렬이란?계수정렬은 Count Sorting이라 불리는 알고리즘이다.그 이유는 배열 내에 있는 데이터들의 개수를 세서, 별도의 인덱싱 배열에 카운팅을 해두고 그 카운팅된 수를 기반으로 조건에 따라 출력하기 때문이다.퀵, 병렬, 힙 정렬보다 빠른 알고리즘으로 볼 수 있지만, 단순히 개수를 세는 방식이기 때문에 데이터의 케이스가 너무 다양한 경우에는 오히려 효율이 떨어지는 정렬 알고리즘이라고 볼 수 있다.즉, 데이터 케이스가 다양하지 않은 경우에만 적용해야 효과적인 알고리즘이라고 보면 된다.시간복잡도O(N)구현방법나동빈님의 알고리즘 강의를 통해 공부하고 있어서, C로 작성된 코드를 ..

알고리즘 2025.04.27

[TMI] 꽃을 든 아주머니를 보며..

📝 주절주절. 내가 하고 싶은 이야기나 문득 들었던 생각들- 9월 23일 월요일. 퇴근하는 길에 꽃을 든 아주머니 한 분을 봤다. 꽃다발에 쌓여진 꽃은 아니었고, 사진 같이 가지를 친 꽃들을 다발로 모아놓은 것 같았다. 그런 꽃다발을 들고 옅은 미소를 띈 아주머니의 얼굴에서 소녀같은 모습을 봤다. 그냥 그렇게 젊고 아름다워 보이셨다.- 꽃을 선물하거나 사는 것에 대해 긍정적인 편은 아니다. 좀 더 명확히 얘기하면 그냥 별 생각이 없다. '굳이 꽃을 사야하나?' 싶은 정도. 그래서 꽃다발을 선물 받는 것도 엄청나게 기뻤던 적은 손에 꼽는 것 같다. 왜냐면 그 가격이면 다른 실용적인걸 살 수 있겠다 싶기 때문이다. 요즘 기준으로 봐도 최소 반팔 티셔츠 하나는 거뜬히 사겠지.- 그런데 오늘 본 아주머니의 모..

내 이야기(TMI) 2024.09.23

[백준] 1874 스택수열 (Python)

오랜만에 다시 시도한 스택수열. 약간의 막힘이 있어 검색을 통해 일부 힌트를 얻었다. 그리고 문제를 제대로 읽지 않은 나의 착오로 헛시간을 좀 낭비했다.스택은 LIFO의 구조로 나중에 들어온 데이터가 가장 먼저 나가는 구조이다. 즉, 간단히 보면 스택수열은 오름차순인 리스트를 내림차순으로 바꾸는 것과 동일하다. 물론, 핵심 동작 자체는 그렇다. 중요한 것은 중간에 숫자가 추가 된다는 것이다. 예제를 보면 1~4까지 오름차순 리스트를 먼저 만들고, 4와 3을 뺐다가 중간에 5~8을 넣고 빼고 하는 과정이 있다. 이 부분 때문에 정말 고민했다. 중간부터 들어오는 수열을 따로 관리하는 방법을 몰라서 계속 고민하다가 검색을 통해 힌트를 얻은 것이 시작점을 변수에 저장하는 방법이었다.import sys# 1874..

알고리즘 2024.09.01

[백준] 1002 터렛 (Python)

문제에 익숙한 용어와 스타크래프트 그림이 있어서 풀어보고 싶었다.처음에 문제를 읽었을 때, 두 좌표간 공통의 지점을 찾는 문제구나까지는 바로 인지했으나, 원의 접점을 구하는 문제라는 것을 깨닫기 까지는 아주 조금  더 걸렸던 것 같다. 즉, 두 원 사이에 접점의 개수를 구하면 되는 문제이다.두 원이 접할 수 있는 경우의 수는 많지는 않다. 1) 두 원 사이에 겹치는 점이 2개일 때 2) 두 원 사이에 겹치는 점이 없을 때 3) 두 원 사이에 겹치는 점이 1개일 때그리고 3번은 다시 2가지 경우로 나뉜다. 1) 외접의 경우 2) 내접의 경우외접의 경우는 8을 생각하면 될 것이고, 내접의 경우는 @정도가 적당할 것 같다. 물론 완벽한 예시들은 아니지만, 글자로 표시하기에는 이 정도면 충분해보인다. 그림 자료..

알고리즘 2024.08.26

[Java] 공변성 A/S (feat. 상속과 오버라이딩)

🤪 아직도 어려운 공변성22년도 9월쯤 쓴 글이 있다.바로 Covariant(공변성)에 관한 글이다. 기존에 썼던 글을 보강하기 위해 이 글을 쓰게 됐다.기존글2022.09.02 - [Java] - [Java] Covariant(공변성)에 관한 간단한 이야기 [Java] Covariant(공변성)에 관한 간단한 이야기📝 객체지향 5원칙(SOLID) SOLID는 객체지향 5원칙의 두음을 따서 만든 말이다. 각각 나열하자면, SRP(단일 책임 원칙) OCP(개방 폐쇄 원칙) LSP(리스코프 치환 원칙) ISP(인터페이스 분리 원칙) DIP(의존codari.tistory.com 객체지향 5원칙 중 LSP에 관한 글을 쓰다가 막혔던 부분이 있다. 또한, three메서드를 보면 분명히 B 생성자를 통해 객체를..

Java 2024.08.05

[React] Props

🅿️ Props Props의 개념을 배울 때 당시 정리해둔 내용은 "컴포넌트 확장 방식이며, 부모 컴포넌트에서 자식 컴포넌트로 데이터를 보내는 방법" 으로 한 줄 정리해두었다. 이를 Java와 엮어서 생각했을 때, 가장 먼저 떠오른 개념은 메소드 파라미터이다. 사실, Java 뿐만 아니라 대부분의 프로그래밍에서는 파라미터라는 개념을 사용할 것이다. 이를 리액트에서는 왜 따로 Props로 정리한지는 모른다. 다만, 자바의 메소드 파라미터와 가장 큰 차이점이 있다면 "함수 자체를 전달받을 수 있다"는 내용일 것이다. 자바의 경우, 메소드 파라미터에 들어갈 수 있는 정보들이 int, String, array와 같은 데이터 형태거나, 클래스의 형태를 전달받아 사용하게 된다. 데이터 형태의 경우 직접 사용하는 ..

JavaScript/React 2024.08.01

[도전! 정보처리기사!] 꾸준함의 미학 (feat. 게으름뱅이)

🔥 정보처리기사 가합격 24년 2회차 정처리 실기 시험의 가답안을 확인하고, 큰 변동이 없으면 합격인 것을 확인했다. 개개인마다 느끼는 시험의 난이도에 차이는 있겠지만, 나는 개인적으로 굉장히 쉽게 나온 편이라고 생각하고 있다. 그 이유는 내가 거의 공부를 하지 않았음에도 가답안 기준 70점 이상을 받을 수 있는 시험이었기 때문이다. (물론 운 좋게 내가 준비했던 부분이 잘 나왔기 때문일 수도 있다.)👀 여러 번의 시도 사실 정보처리기사 시험을 한 번에 붙었으면 참 좋았겠지만, 나는 그러지 못했다. 아마 이번에 본 시험이 실기 시험 3~4번째 쯤일 것이다. 즉, 수능으로 치면 3~4수를 한 셈이다. 총 필기 시험 2번을 보고 2번을 합격했고, 실기시험은 3번을 보고 1번을 합격했다. 결국 시험만 5번..

정보처리기사 2024.07.31