Notice
반응형
Recent Posts
Recent Comments
Link
- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Archives
Tags
- 황리단길감성숙소
- 경주동취
- 서울템플스테이데이트
- 서울템플스테이추천
- 함수 이름
- 금선사템플스테이
- 면접준비 #면접컨설팅 #면접질문 #면접모의질문 #답변구조화 #모의면접 #모의면접컨설팅 #면접컨설팅후기
- 경주술
- 하나은행 코딩 테스트 후기
- 경주황리단길한옥숙소
- 템플스테이1월
- 경주프렙칵테일
- nestjs 프로젝트 생성 명령어
- 금선사숙소
- 경주프렙
- 진학사 어플라이 면접 후기
- 경주한옥자쿠지숙소
- 한옥녹턴
- 경주황리단길자쿠지
- 금선사데이트
- 경주11월날씨
- nestjs 마이크로서비스 설치 시 발생하는 의존성 충돌 해결하기
- nestjs #openai #api키 #호출방법 #ai활용 #ai연동 #aikey연결하기 #환경변수파일
- 경주맛집추천
- 경주3박4일여행일정
- 진학사 코딩테스트 후기
- 경주프렙후기
- 경주전통주
- 황리단길자쿠지
- 구글애드센스신청 #구글애드센스 #구글애드센스시작하는방법 #구글애드센스티스토리 #블로그에구글애드센스 #티스토리 #구글애드센스가입 #구글애드센스등록
notcherry
[그리디 알고리즘] 백준 11047, 백준 1541 본문
반응형
그리디 알고리즘이란 현재 상태에서 보는 선택지 중 최선의 선택지가 전체 선택지 중 최선의 선택지라고 가정하는 알고리즘이다.
수행 과정
1. 해 선택 : 최선의 선택지를 해로 선택한다.
2. 적절성 검사 : 전체 문제의 제약 조건에 벗어나지 않는지 검사한다.
3. 1~2 반복
백준 11047에서 그리디를 적용하기 위해 살펴보면, 최대한 큰 금액의 동전으로 구성하는 것이 최선의 선택지임을 알 수 있다.
public class 동전개수의_최솟값_구하기 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt();
int a[] = new int[n];
for (int i = 0; i <n; i++) {
a[i] = sc.nextInt();
}
//그리디 알고리즘 -> 최대한 큰 동전을 먼저 사용하기
int count = 0;
for(int i = n-1; i>=0; i--) {
if(a[i] <= k) {
count += (k/a[i]); // 사용한 동전 수
k = k%a[i];
}
}
System.out.println(count);
}
}
백준 1541 에서 요구하는, 어떻게 하면 최솟값을 만들 수 있을까? -> 빼는 숫자가 크면 클수록 전체 수식의 결과는 최소가 된다.
public class 최솟값을_만드는_괄호_배치_찾기 {
static int answer= 0;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String example = sc.nextLine();
String[] str = example.split("-");
for (int i = 0; i<str.length; i++) {
int temp = mySum(str[i]);
if (i == 0) answer = answer + temp;
else answer = answer - temp;
}
System.out.println(answer);
}
private static int mySum(String a) {
int sum = 0;
String[] temp = a.split("[+]"); //허상 수량자 에러 해결 -> 대괄호 사용 / split이 +를 잘 인식 못 함..
for (int i = 0; i<temp.length; i++) {
sum = sum + Integer.parseInt(temp[i]);
}
return sum;
}
}
반응형
'코딩테스트' 카테고리의 다른 글
[그래프] 유니온 파인드 & 위상 정렬 (0) | 2024.03.05 |
---|---|
[정수론] 백준 1929 (0) | 2024.03.01 |
[너비 우선 탐색 BFS] 백준 2178 (0) | 2024.02.28 |
[이진 탐색] 백준 1920 (0) | 2024.02.28 |
[깊이 우선 탐색 DFS] 백준 11724 (0) | 2024.02.27 |