분류 전체보기
-
동적 계획법을 풀이하면서, 배낭 문제의 개념을 꼭 숙지하고 있으면 좋을 것 같다는 생각이 들었다.이와 관련된 문제를 보며, 냅색 알고리즘을 이해해보도록 하자.문제url : https://www.acmicpc.net/problem/12865 문제에서는 n=4, k=7이고 각 물건의 무게와 가치가 주어졌다.6 13 4 8 3 6 5 12 1번 물건2번 물건3번 물건4번 물건W(무게)6435V(가치)138612DP를 사용하여 문제를 풀이한다고 할 때, dp[i][j]의 의미는 아래와 같다.dp[i][j] = 처음부터 i번째까지의 물건을 살펴보고, 배낭의 용량이 j일 때 배낭에 들어간 물건의 가치합의 최댓값따라서, 우리가 찾고자 하는 값은 dp[n][k]이다.dp[i][j]는 dp[i-1][j]와 dp[i-1]..
배낭 문제 (Kanpsack Algorithm)동적 계획법을 풀이하면서, 배낭 문제의 개념을 꼭 숙지하고 있으면 좋을 것 같다는 생각이 들었다.이와 관련된 문제를 보며, 냅색 알고리즘을 이해해보도록 하자.문제url : https://www.acmicpc.net/problem/12865 문제에서는 n=4, k=7이고 각 물건의 무게와 가치가 주어졌다.6 13 4 8 3 6 5 12 1번 물건2번 물건3번 물건4번 물건W(무게)6435V(가치)138612DP를 사용하여 문제를 풀이한다고 할 때, dp[i][j]의 의미는 아래와 같다.dp[i][j] = 처음부터 i번째까지의 물건을 살펴보고, 배낭의 용량이 j일 때 배낭에 들어간 물건의 가치합의 최댓값따라서, 우리가 찾고자 하는 값은 dp[n][k]이다.dp[i][j]는 dp[i-1][j]와 dp[i-1]..
2024.07.24 -
- 오늘의 학습 키워드 : Java - Character 클래스 [문제 이름 : 숫자 카드 나누기]문제 url : https://school.programmers.co.kr/learn/courses/30/lessons/81301 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr내가 작성한 코드는 아래와 같다.import java.util.*;class Solution { public int solution(String s) { int answer = 0; String result = ""; String temp = "..
99클럽 코테 스터디 3일차 TIL [Character 클래스]- 오늘의 학습 키워드 : Java - Character 클래스 [문제 이름 : 숫자 카드 나누기]문제 url : https://school.programmers.co.kr/learn/courses/30/lessons/81301 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr내가 작성한 코드는 아래와 같다.import java.util.*;class Solution { public int solution(String s) { int answer = 0; String result = ""; String temp = "..
2024.07.24 -
- 오늘의 학습 키워드 : 최대공약수[문제 이름 : 숫자 카드 나누기]문제 url : https://school.programmers.co.kr/learn/courses/30/lessons/135807 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 내가 작성한 코드는 아래와 같다.import java.util.*;class Solution { public int solution(int[] arrayA, int[] arrayB) { int answer = 0; int chulGcd = gcd(arrayA); int y..
99클럽 코테 스터디 2일차 TIL [최대공약수]- 오늘의 학습 키워드 : 최대공약수[문제 이름 : 숫자 카드 나누기]문제 url : https://school.programmers.co.kr/learn/courses/30/lessons/135807 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 내가 작성한 코드는 아래와 같다.import java.util.*;class Solution { public int solution(int[] arrayA, int[] arrayB) { int answer = 0; int chulGcd = gcd(arrayA); int y..
2024.07.23 -
오늘의 학습 키워드 : [스택]풀이 코드는 아래와 같다.import java.util.*;class Solution { public int[] solution(int[] numbers) { int[] answer = new int[numbers.length]; Stack stack = new Stack(); // 뒷 큰 수가 없는 경우로 초기화 Arrays.fill(answer, -1); for (int i = 0; i [ 오늘의 회고 ]되게 간단하게 풀이하려고 이중 for문으로 처음 코드를 짰는데, 몇 개의 테스트 케이스에서 시간 초과가 발생했다. import java.util.*;class Solution..
99클럽 코테 스터디 1일차 TIL [배열, 스택]오늘의 학습 키워드 : [스택]풀이 코드는 아래와 같다.import java.util.*;class Solution { public int[] solution(int[] numbers) { int[] answer = new int[numbers.length]; Stack stack = new Stack(); // 뒷 큰 수가 없는 경우로 초기화 Arrays.fill(answer, -1); for (int i = 0; i [ 오늘의 회고 ]되게 간단하게 풀이하려고 이중 for문으로 처음 코드를 짰는데, 몇 개의 테스트 케이스에서 시간 초과가 발생했다. import java.util.*;class Solution..
2024.07.22 -
큰 순서는 다음과 같다. 1. build.gradle (app)에서 compileSdk을 33으로 맞춰주세요. (본인 컴퓨터에서 잘 돌아간다면 상관없다.) 2. build.gradle (app)에서 다음을 입력! implementation 'com.google.android.gms:play-services-auth:20.5.0' 3. 안드로이드 스튜디오 터미널에서 ./gradlew signingReport 를 입력하면 로컬 PC의 SHA1 지문을 얻을 수 있다. 4. 구글 API 콘솔에서 프로젝트 생성 후, 좌측 햄버거 버튼 - API 및 서비스 - 사용자 인증 정보로 들어가서, 상단의 사용자 정보 추가를 클릭 후, Oauth Client 클릭한다. 5. 안드로이드 선택 후, 해당 프로젝트의 패키지 이름..
소셜 로그인 (구글, Google 편)큰 순서는 다음과 같다. 1. build.gradle (app)에서 compileSdk을 33으로 맞춰주세요. (본인 컴퓨터에서 잘 돌아간다면 상관없다.) 2. build.gradle (app)에서 다음을 입력! implementation 'com.google.android.gms:play-services-auth:20.5.0' 3. 안드로이드 스튜디오 터미널에서 ./gradlew signingReport 를 입력하면 로컬 PC의 SHA1 지문을 얻을 수 있다. 4. 구글 API 콘솔에서 프로젝트 생성 후, 좌측 햄버거 버튼 - API 및 서비스 - 사용자 인증 정보로 들어가서, 상단의 사용자 정보 추가를 클릭 후, Oauth Client 클릭한다. 5. 안드로이드 선택 후, 해당 프로젝트의 패키지 이름..
2023.04.07 -
String은 불변 속성을 가지며, StringBuffer와 StringBuilder는 그렇지 않다.즉, String은 concat이나 + 연산을 통해 값을 변경하게 되면, 기존의 String 메모리에서 값이 바뀌는 것이 아니라 기존의 String에 들어있던 값을 버리고 새로운 값을 할당받게 된다. 따라서 처음 할당한 String의 메모리 영역은 Garbage로 남아있다가 GarbageCollection에 의해 없어지게 된다. String은 불변성을 가지기 때문에 변하지 않는 문자열을 자주 읽어들이는 경우 사용하면 유리하다. 하지만 문자열 추가, 삭제, 수정 등의 연산이 자주 일어나는 경우에는 힙 메모리에 Garbage가 생성되고, 이는 힙 메모리 부족으로 이어져 프로그램의 성능에 치명적 영향을 끼칠 수..
StringBuilder 사용법 (StringBuffer, String과 비교)String은 불변 속성을 가지며, StringBuffer와 StringBuilder는 그렇지 않다.즉, String은 concat이나 + 연산을 통해 값을 변경하게 되면, 기존의 String 메모리에서 값이 바뀌는 것이 아니라 기존의 String에 들어있던 값을 버리고 새로운 값을 할당받게 된다. 따라서 처음 할당한 String의 메모리 영역은 Garbage로 남아있다가 GarbageCollection에 의해 없어지게 된다. String은 불변성을 가지기 때문에 변하지 않는 문자열을 자주 읽어들이는 경우 사용하면 유리하다. 하지만 문자열 추가, 삭제, 수정 등의 연산이 자주 일어나는 경우에는 힙 메모리에 Garbage가 생성되고, 이는 힙 메모리 부족으로 이어져 프로그램의 성능에 치명적 영향을 끼칠 수..
2023.03.05