일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 챗GPT 명령어 작성팁
- 이것이 자바다 확인문제
- 조건문과 반복문
- 이것이 자바다 연습문제
- 스프링 입문강의
- dfs
- 이노베이션 캠프
- 자바의 정석 6장
- 이노캠
- BFS
- 3장 확인문제
- 자료구조
- 이것이 자바다 13장
- 객체지향
- ArrayList 개념
- Comparable과 Comparable
- 트리 지름 구하기
- 이것이 자바다
- 이노베이션캠프
- 이노베이션캠프 동북
- ChatGPT
- 자바
- 백준
- JAVA 기초
- 자바 언어 기초
- 웹개발 기본지식
- Java
- 채팅GPT
- Til
- 인프런
- Today
- Total
목록TIL(Today I Learned) (35)
기록공간
📙 공부 한 것 알고리즘 - 평범한 배낭 (백준 12965) (X) 🔍 부족한 점 알고리즘 버틸 수 있는 최대 무게가 주어졌을때, 넣을 수 있는 물건들의 가치합의 최댓값을 출력하도록해야한다. 처음에는, 무게를 기준으로 오름차순 정렬한다음, 그리디알고리즘으로 문제를 풀수있지않을까 생각했지만, 시간복잡도가 2^N으로 매우 비효율적이라는 사실을 알게되었다. 서로 다른 품목과 무게 제한에 대해 배낭의 최대 가치를 갖는 값을 찾을 수 있다고한다 . .. 이런식으로, 하위 문제가 반복될 수 있고, 중복되는 하위문제가 있을 수 있기 때문에, 하위 문제에 대해 DP 테이블에 저장하고 사용할 줄 알아야한다....

📙 공부 한 것 알고리즘 -1003 다리놓기 (동적계획법) -1010 피보나치함수 (동적계획법) -1436 영화감독 숌 - 동적계획법 🔍 시도해본 것 서로 다른 N개중 중복을 허용하지 않고 r개를 뽑는 경우의 수를 작성해야하는데, 이 방법을 코드로 메모이제이션을 이용해서 구현하는 방법을 몰랐다. 예를들면, 4개의 동쪽다리와 3개의 서쪽다리가 있을때, (3,1,4) 와 (1,3,4)를 동일하게 한가지 경우의 수로 세아리는 것이다. (크로스x) 💡 알게된 점 조합 공식의 성질 dp[i][j] = dp[i-1][j-1] + dp[i-1][j] dp[i][j] =1 , dp[i][0] = 0 위 두 가지 조합성질을 이용해서, 메모이제이션을 이용해 동적계획법으로 구현할 수 도있다. 동적계획법이란? 큰 문제를 작은..

📙 공부한 것 - 알고리즘 - 1541 잃어버린 괄호 (X 풀지못함) - 1934 최소공배수 (X) 🔍 시도해본 것 잃어버린 괄호 30-70-(20+40)-(10+100+30)-35 같은 식이 있을때, 덧셈은 더해줘야한다는 생각은 떠올랐다. 하지만 입력을 어떻게 받아서 처리해줘야할지 몰랐다. 아무래도 문자열 처리 부분이 많이 약한 것 같다. 최소공배수 최대 공약수 : 두 자연수의 공통 약수 중 가장 큰 수를 의미ex ) 72와 30의 최대공약수는 6이다. 최소 공배수 : 최소 공배수는 두 자연수의 공통된 배수 중 가장 작은 수를 의미 = 두 자연수의 곱 / 최대 공약수 💡 알고 된 점 잃어버린 괄호 처음 StringTokenizer 클래스를 이용해서, 입력을 받고 구분자를 "-" 부호로 해줘야했다. 그 ..
📙 공부 한 것 알고리즘 문제 -요세푸스 문제0 -최소 힙 -약수 -동전 0 -이항 계수 💡 알고 가는 것 자료구조 -ArrayList와 LinkedList의 차이 ArrayList 내부적으로 배열을 이용하여 데이터를 저장하며, 인덱스를 이용하여 데이터에 접근할 수 있다. 데이터를 삽입하거나 삭제할 때는 배열의 크기를 변경해야 하므로, 시간이 더 걸릴 수 있다. 하지만, 인덱스를 이용하여 데이터에 빠르게 접근할 수 있으며, 데이터를 순차적으로 접근할 때는 LinkedList보다 빠르다. LinkedList 내부적으로 연결 리스트를 이용하여 데이터를 저장하며, 데이터를 삽입하거나 삭제할 때는 연결 리스트의 노드를 변경하면 되므로, 시간이 덜 걸린다. 하지만, 인덱스를 이용하여 데이터에 접근할 때는 처음부터..
📙 공부 한 것 백준 알고리즘 - 1110 더하기 사이클 - 1011 - 1002 터렛 - 10828 스택 - 10773 제로 - 18258 큐 2 🔍 부족한 점 알고리즘 문제를 풀면서, 직접 손으로 표와 그림을 그려서 수학적 패턴을 파악하는 것이 중요하다는 점을 느꼈다. 💡 알고 가는 것 자료구조 큐는 FIFO 구조이며, 자바로는 배열과 연결리스트로 구현할 수 있다.

📙 공부 한 것 - 백준 알고리즘 2839 설탕배달 4948 배르트랑 공준 2869 달팽이는 올라가고싶다 10250 ACM 호텔 1929 소수 구하기 🔍 부족한 점 1. 소수 구하는 알고리즘 중에 에라토스테네스 체의 알고리즘을 완벽히 체득하지 못했다. 2. 수식적으로 알고리즘문제 푸는 연습이 부족했던 것 같다. (완전멘붕) 💡 알고 가는 것 1부터 120사이의 소수를 구하는 방식은 에라토스테네스 체로 구현한 것이다. 이미 소수로 판정이 된 수의 배수를 제거하는 알고리즘형태이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 int N = 120; // 소수를 찾을 범위 boolean[] isPrime = new boolean[N + 1]; // 소수 판별을 위한 배열 생..
배운 것 인프런 HTTP 웹 기본지식 Part 1 스프링 핵심 기본편 알고가는 것 강의를 듣다가, MemberService memberService = new MemberServiceImpl() 이런 형태의 객체 생성 이유가 궁금했었다. 이것은 MemberService 인터페이스를 구현한 MemberServiceImpl` 클래스의 인스턴스를 생성한다는 의미이다. 이렇게 변수를 선언한 이유는 아래와 같다고한다. 1. 다형성(Polymorphism) 활용: 인터페이스를 사용하면 다양한 구현체를 사용할 수 있다. 즉, `MemberService` 인터페이스를 구현한 다른 클래스가 여러 개 있다면, 이러한 인스턴스들을 선택적으로 사용할수있다. (유연성 증가) 2. 결합도(Loose Coupling) 감소: 인터..

오늘은 웹개발 5주차 강의를 마무리하고, 이외의 추가기능을 구현해보고싶어서 ChatGPT와 구글 바드 등 여러가지 인공지능 챗봇의 도움을 받아 팬명록 삭제 기능을 구현하였다. 이렇게 팬명록을 남길때, 자기만의 고유 비밀번호를 입력할 수 있도록 칸을 만들었고 댓글삭제 버튼을 눌렀을때 비밀번호를 입력하게 해서 올바른 비밀번호를 입력하게하고싶었다. function show_comment() { fetch('/guestbook').then((res) => res.json()).then((data) => { let rows = data['result'] $("#comment-list").empty() rows.forEach((a) => { let name = a['name'] let comment = a['com..