안녕하세요! NewCodes입니다!
처음으로 TIL을 블로그에 작성해보려 합니다.
TIL을 계속하게 될 진 모르겠는데
우선 일주일 정도 해보고 괜찮다 싶으면 유지할 생각입니다!
깃허브로 할까도 생각했는데, 블로그로 하려 합니다!
깃허브로 하면 잔디 채우고 좋지만,
TIL로 채우는 잔디는 큰 의미가 없을 것 같아서
블로그로 합니다!
✅ To Do List
- [x] 알고리즘
- [x] 백준 dp 2문제
- [x] 백준 그리디 2문제
- [x] 프로그래머스 카카오 레벨2 1문제
- [x] 투 포인터, 유니온 파인드 개념 학습
- [x] CS
- [x] CS50 강의
- [x] CS스터디 오리엔테이션
- [x] 프로젝트
- [x] 스프링 프로젝트 시동 걸기
- [x] 방향 설정
- [x] TIL 고려 - CS 강의, 코테, 스프링
하고자 한 것들 다했습니다! 오늘은 학교 수업이 하나 있는 날이라 공부하는 시간이 확보가 되었습니다! 운동도 40분 정도 했고요!
다음 주까지는 이렇게 Four Track으로 가려고 합니다. 알고리즘, CS, 프로젝트, 방향 설정 이렇게 4가지로요!
다음 주 토요일에 우아한테크캠프 코딩테스트를 볼 예정이라 코테에 포커스를 두되, CS와 프로젝트를 놓치지 않으려 합니다.
1️⃣ 알고리즘
오늘 피드백 커밋한 내용
https://github.com/NewCodes7/algorithm-study/commit/3629d59605d115cc3c7bd980f3c475327ab76e63
1 - 1) 풀이 절차 확립
1. 문제 이해 및 조건 파악
2. 설계 (주석, 노트 이용)
3. 풀이
4. 풀이 후, 피드백
1. 더 나은 풀이 고려
2. 컨벤션 고려 (Command + Option + L, chatGPT)
: 제가 알고리즘 문제를 푸는 절차를 명시화해 봤습니다. 특히, 풀이 후에 chatGPT를 통해 코드리뷰를 받는 경험이 정말 좋았습니다! 앞으로도 이 습관은 유지하고자 합니다! 더 나은 변수 네이밍, 더 나은 로직 등을 추천받을 수 있어서 여러분께도 추천합니다!
1 - 2) 유니온 파인드
- 의미: 서로 다른 두 개의 노드가 같은 그래프(집합)에 속하는지 판별하고, 병합해 주는 알고리즘
- 서로소 집합이라고도 함.
- 크루스칼 알고리즘에서도 쓰임.
- 기능
- union: 병합
- find: 판별
- 예제 코드
public static boolean union(int x, int y) {
x = find(x); //x의 부모노드 찾기
y = find(y); //y의 부모노드 찾기
// 이미 같은 그래프에 속해있을 때 false 반환
if(x == y) return false;
if(x <= y) parent[y] = x;
else parent[x] = y;
return true;
}
public static int find(int x) {
if(parent[x] == x) return x;
return find(parent[x]);
}
1 - 3) 투 포인터
- 의미: 배열이나 리스트에서 두 개의 포인터를 이용해 특정 조건을 만족하는 부분 구간을 효율적으로 탐색하는 알고리즘
- 사용처: 배열이나 리스트가 정렬되어 있을 때, 시간 복잡도를 낮춰야 할 때
- 시간 복잡도: O(N)
- 활용 방안
- 투 포인터 합
- 투 포인터 슬라이딩 윈도우 (아직 학습x)
- 투 포인터 정렬 (아직 학습x)
2️⃣ CS
2 - 1) CS50 강의
하버드 David J. Malan 교수님의 CS50 강의를 들었습니다! 오늘 처음 들어본 강의인데 몰입도 장난 아니네요.. ㄷㄷ 비전공자라면 무조건 들어보시는 걸 추천합니다!
컴퓨팅 사고 중 2진법, 정보의 표현, 알고리즘에 대해 학습했습니다. 2진법은 정보처리기능사 필기 공부하면서 배웠던 거라 내용이 크게 다르지 않았습니다.
오늘 배운 내용을 3 문장으로 핵심 요약해 보겠습니다.
- 문제 해결을 위한 'Input과 Output' 그 사이에 있는 것이 'CS'이다.
- 컴퓨터는 0과 1로 문자, 사진, 영상, 음악 등을 저장한다.
- 알고리즘이란 문제 해결을 위한 규칙들의 순서적 나열이다.
2 - 2) CS스터디 시작!

오늘 CS 스터디 리더로서 오리엔테이션을 진행했습니다. 1주일 전에 모집글을 올렸고, 총 28명이 지원해 주셨고, 4명의 팀원과 함께 하게 되었습니다!
오리엔테이션은 잘 진행되었습니다!
https://github.com/BCS-study/basic-computer-science
GitHub - BCS-study/basic-computer-science: 웹 개발자로서 필수로 알아야 할 CS 지식 + 면접 질문
웹 개발자로서 필수로 알아야 할 CS 지식 + 면접 질문. Contribute to BCS-study/basic-computer-science development by creating an account on GitHub.
github.com
오리엔테이션은 위 레포지토리 기반으로 앞으로 어떻게 할 건지 개요 위주로 진행했습니다.
앞으로 해당 CS 스터디는 애정을 가지고 임할 예정입니다. 스터디를 이끄는 게 처음이지만, 처음인 만큼 부족한 모습 없이 이끌려고 노력하고 있습니다! 관련 스터디 레퍼런스도 많이 찾아보고 어떻게 하면 더 의미 있는 스터디가 될까 고민도 많이 했습니다.
팀원 분들도 다들 성격 좋아 보이시고 열정 있게 참여하실 것 같아 기대가 됩니다!!!
3️⃣ 프로젝트
자바/스프링 기반의 CRUD 게시판 프로젝트를 앞으로 진행하고자 합니다. 해당 프로젝트를 하면서 백엔드 개발자로서의 기본기를 다져보고자 합니다.
그래서 이전에 듣던 김영한 강사님의 스프링 입문 강의를 다시 살펴봤습니다. 해당 강의를 다시 빠르게 듣고 프로젝트를 진행해야 할 것 같습니다!!
내일은 스프링 전체적인 개념에 대해 자세하게 작성해 보겠습니다!
😊 하루를 마무리하며
- 컨디션: 8/10 (점심 이후에 약간 졸림)
- 잘한 점
- 아침에 카페인 수혈
- 책임감 있게 스터디 OT 이끈 것
- 학교 수업 시간에 레버리지 한 것
- To do list 펑크 없이 수행한 점
- 피드백
- 점심(짜장면): 밀가루 위주의 식사는 되도록이면 지양하자! 졸리다.
- TIL: 괜찮은 것 같은데? 잘 다듬으면 효율 좋게 복습할 수 있을 듯. (오늘은 40분 정도 썼음.)
- 운동: 2주 만에 웨이트 하니 무게가 좀 줄었다.. 1주에 최소 1회는 하자..!
- 마지막 한 마디: 내일도 파이팅!! 주어진 순간에 행복하고, 몰입하자.
'회고 > TIL' 카테고리의 다른 글
| [TIL] 네트워크가 머릿속에 조금씩 들어오기 시작하다! (0) | 2024.04.10 |
|---|---|
| [TIL] 마음 정돈을 다시 시작하다! (0) | 2024.04.09 |
| [TIL] 컨디션이 안 좋아도 할 건 한다! (0) | 2024.04.08 |
| [TIL] 주말 활용법을 파악하다! (0) | 2024.04.06 |
| [TIL] 깃허브 그라운드 룰을 만들다! (1) | 2024.04.05 |