전체 글 92

99클럽 코테 스터디 9일차 TIL ✒️체이닝 방식으로 HashMap 구현하기

✅ 오늘의 학습 키워드체이닝이란HashMap 직접 구현하기🔍 오늘의 문제 분석↘️ 오늘의 문제 바로가기 ↘️ 오늘의 문제는 HashMap의 주요 메서드인 put, get, remove를 HashMap 클래스를 쓰지 않고 구현하는 문제이다. 실제 자바에서 HashMap가 구현되는 방식으로 구현해보고 싶은 욕심이 생겨서 (내부 구조를 배우고 싶달까..🤔) 동영상을 참고해서 풀어 보았다. ✨ 오늘의 회고📌내가 적은 답안📌더보기class Node { int key; int val; Node next; Node (int key, int val) { this.key = key; this.val = val; this.next = null; }} ..

99클럽 코테 스터디 8일차 TIL ✒️문자 개수 세기

✅ 오늘의 학습 키워드int[] 배열 사용하기🔍 오늘의 문제 분석↘️ 오늘의 문제 바로가기 ↘️ 문자열 num 이 주어진다문자열의 인덱스가 문자열 안에 등장하는 횟수를 카운트한다 각 인덱스의 실제 숫자 값과 횟수가 일치하면 true를 아니면 false를 반환한다 ✨ 오늘의 회고📌내가 적은 답안📌더보기class Solution { public boolean digitCount(String num) { int cnt; for (int i = 0; i 처음에는 위 코드처럼 이중 반복문을 사용해서 각 숫자의 등장 횟수를 일일이 세는 방식으로 풀었다. 그리고 이중 반복문을 사용하고 싶지 않아서 int[] 배열을 사용해 보았다. 각 자릿수의 숫자는 0~9까지만 등장하는 것을 활용해서 배..

99클럽 코테 스터디 7일차 TIL ✒️ 좋은 단어 (스택 활용)

✅ 오늘의 학습 키워드Stack 활용하기추가, 삭제, 조회 메서드별 비교🔍 오늘의 문제 분석↘️ 오늘의 문제 바로가기 ↘️ 같은 문자끼리 짝 지어서 교차하지 않는 문자열의 개수를 반환한다 단어의 길이는 2와 100,000사이이다이 문제를 보고 우선 문자를 짝 짓는 방법에 대해서 생각해봤다. 짝을 지을 때 교차하지 않으려면 2가지 방법이 존재했다. 첫번째는 왼쪽부터 오른쪽 방향으로 순차적으로 같은 문자가 나오는 패턴이었다. ( a a b b a a ) 두번째는 중간에 위치한 문자부터 양 끝으로 연결되는 패턴이었다. ( a b a b b a b a ) ✨ 오늘의 회고📌내가 적은 답안📌더보기import java.io.BufferedReader;import java.io.IOException;import ..

3-3. Docker 어플리케이션 배포하기

Amazon ECS 서비스에서 클러스터를 생성한다 태스크 정의를 생성한다 생성된 클러스터에서 컨테이너를 실행할 서비스를 생성한다  🔥 이제 GitLab Runner를 이용해서 자동으로 배포해보자! 🔽 자동으로 배포하기 위해 Makefile과 .gitlab-ci.yml 파일을 변경한다.   🔽 GitLab으로 변경사항을 커밋하면 파이프라인에서 정상적으로 CICD가 되는지 확인할 수 있다.  🔽 curl과 웹 브라우저를 통해서 변경된 프로그램이 잘 실행되는 것을 확인해보았다. 과금 이슈로 로드밸런싱을 삭제한 상태라 Public IP로 접근했다.

3-2. Amazon ECS란?

🔽 3주차 목표 💡 ECR에 푸시한 도커 이미지를 배포하기💡 AWS ECS는 AWS에서 제공하는 docker container 실행 서비스로 ECR에 있는 docker image를 ECS에 배포해서 “인터넷 사용자가 접속할 수 있도록” 하기  GitLab에 코드가 push 되면 Docker Image 가 만들어지고 ECR에 Push를 하게 됩니다. ECR에 Push를 하면 GitLab은 “deploy stage”의 job을 실행하는데, 이 job은 ECS를 이용해서 Docker Image를 PULL 해서 docker container 실행하게 됩니다. 이제 사용자는 웹 브라우저를 이용해서 서비스를 사용할 수 있게 됩니다.AWS는 API를 이용해서 ECS에 새로운 docker container 서비스..

99클럽 코테 스터디 6일차 TIL ✒️계단 오르기

✅ 오늘의 학습 키워드피보나치 수열경우의 수 구하기 🔍 오늘의 문제 분석↘️ 오늘의 문제 바로가기 ↘️ 한 번에 1 계단 또는 2 계단을 올라간다주어지는 n개의 계단을 오를 수 있는 모든 경우의 수를 찾는다✨ 오늘의 회고📌내가 적은 답안📌더보기class Solution { public int climbStairs(int n) { int a = 0; int b = 1; int c = 0; for (int i = 0; i   오늘의 문제는 접근 방식이 아주 다양했다. 같은 접근 방식이더라도 구현하는 코드가 달라지기도 했다. 가장 간단하게 구현할 수 있는 방법은 피보나치 수열과 로직이 동일한 것을 이용해서 피보나치 수열처럼 문제를 푸는 것이다.  n..

99클럽 코테 스터디 5일차 TIL ✒️Stack을 Queue로 구현하기+제네릭

✅ 오늘의 학습 키워드자바 제너릭 명시Queue 인터페이스와 구현 클래스ArrayDeque와 LinkedList스택을 큐로 구현하기 🔍 오늘의 문제 분석↘️ 오늘의 문제 바로가기 ↘️ Queue를 이용해서 Stack을 구현두 개의 큐를 구현 오늘의 문제는 어제와 반대로 큐를 이용해서 스택을 구현하는 문제였다. 스택과 다르게 큐는 선입선출의 자료구조를 가지고 있기 때문에 어제의 논리와 다르게 구현해야 했다. ✨ 오늘의 회고📌내가 적은 답안📌더보기import java.util.ArrayDeque;import java.util.Queue;class MyStack { Queue q1; Queue q2; public MyStack() { q1 = new ArrayDeque(); ..

99클럽 코테 스터디 4일차 TIL ✒️Stack을 이용해서 Queue 구현

✅ 오늘의 학습 키워드Queue와 Stack 구조 알기Stack만으로 Queue 구현하기🔍 오늘의 문제 분석↘️ 오늘의 문제 바로가기 ↘️ 스택으로 큐의 push, pop, peek, empty 기능을 구현스택의 순서를 반전시키기 위해 두 개의 스택을 선언 오늘의 문제는 스택이 큐처럼 기능하도록 구현하는 문제이다. 큐는 FIFO 선입선출의 구조를 가지고 있고 스택은 LIFO 후입선출의 구조를 가지고 있다. 그래서 push 또는 pop을 수행할 때 미리 스택에 있는 요소들의 순서를 반전시켜야 한다. 이렇게 반전시키기 위해서 요소를 잠시 저장하기 위해 또 다른 스택을 이용한다. ✨ 오늘의 회고📌내가 적은 답안📌더보기import java.util.Stack;class MyQueue { private..

99클럽 코테 스터디 3일차 TIL ✒️!!초콜릿 중독 주의!!

✅ 오늘의 학습 키워드char에서 int 변환문자열 인덱스 탐색조건문🔍 오늘의 문제 분석↘️ 오늘의 문제 바로가기 ↘️ 문자열에서 0 또는 1의 인덱스를 찾는다0 또는 1 뒤에 !가 있으면 항상 결과는 1이다0 또는 1 앞에 !의 개수대로 논리를 반전한다오늘의 문제는 특정 문자열에서 숫자를 찾고 해당 숫자의 위치에 따라 논리를 적용하는 문제였다.✨ 오늘의 회고📌내가 적은 답안📌더보기import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main { public static void main(String[] args) throws IOException { Buffe..

99클럽 코테 스터디 2일차 TIL ✒️ ASCII 코드 변환

✅ 오늘의 학습 키워드문자 → 아스키코드 변환Character 메서드문자 직접 비교 🔍 오늘의 문제 분석↘️ 오늘의 문제 바로가기 ↘️ 100개 이하의 문장이 주어진다각 문장의 길이는 100을 넘지 않는다각 문장은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있다각 종류대로 구분해서 개수를 출력한다 이 문제를 보고 가장 먼저 떠오른 것은 아스키코드를 사용해서 구분하는 것이였다. String을 int형으로 강제 변환해서 9이하이면 숫자, 65이상 90이하이면 대문자로 조건식을 작성했다. ✨ 오늘의 회고처음 생각했던 방향대로 조건식을 작성하다 보니 공백과 숫자를 구분하는것이 어려웠다. 아스키코드에서 공백은 32이고 숫자는 48 ~ 57인데 이런 것을 몰랐다. 숫자인 char이더라도 int형으로 변환..