Greedy 6

[BaekJoon] 백준 1541번_잃어버린 괄호 for JAVA _그리디 알고리즘

https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 푸는 방법은 최소값으로 괄호를 만들기 위해서는 - 뒤의 +가 있는 숫자들까지만 괄호를 쳐주면 된다. 무슨 말이냐면... 예를 들어 1+2-3+4+5-10+5 = 2 인데 2- 뒤의 3+4+5를 묶고 - 뒤에 10+5를 묶는다는 것이다. 그래서 1+2-(3+4+5) -(10+5) = -24 라는 값이 나온다. 푸는 방법은 바로 떠올렸는데... string으로 받아올 저 케이스를 어떻게 숫자와 ..

알고리즘/백준 2022.01.05

[프로그래머스] 큰 수 만들기 for JAVA _ 그리디 알고리즘

https://programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 안봐도 되는 실패기 위의 문제 알고리즘은 왼쪽 숫자부터 그 옆 숫자와 비교하여 오른쪽 숫자가 더 크면 왼쪽 숫자를 지우는 방식을 사용하였다. 그러니까 4177252841 에서 4, 1을 비교하면 4 < 1 이므로 넘어가고 1 < 7 이므로 1을 삭제한다. 그러면 477252841이 되고 4 < 7 이므로 4를 삭제하여 77252841이 되고 2 < 5 이므로 2를 삭제하여 7752841, 2 < 8 이므로 775841 이 return 되는 것이다. 그래..알고리즘은 이렇게 짰고 구현을 할 때 2중 for문으로 k번 만큼 돌게, 왼쪽부터 훑..

[프로그래머스] 체육복 for JAVA

그리디 알고리즘에 분류되어있는 level1짜리 문제이다. 내가 풀려던 방법은 arraylist에 1~n까지의 수를 다 넣고 lost인 사람의 숫자를 없애고 reserve -1 과 +1을 비교해서 넣는 방법을 사용하려고 했는데 모든 테스트케이스를 통과하지 못했다.. 50점이었나...? 지금 보니 왜 저렇게 짰는지... 그래서 남의 코드를 봤다!! 내걸로 만들려고 리뷰할거다. 풀이1 1. 먼저 여벌 체육복을 가져온 학생이 잃어버렸으면 +-0이므로 걔네 먼저 확인해줘야한다. 2중 for문으로 lost 배열과 reserver 배열에 같은 값이 있는지 확인하고 같은 값이 있다면 answer에 +1 해주고(수업참여 가능) 두 배열 값을 -1로 초기화한다. 2. 도난당한 학생에게 체육복 빌려주기 여분이 있는 학생은 ..

[BaekJoon] 백준 11399번_ ATM for JAVA

ATM 얘도 그리디 알고리즘 문제 유형에 있는 문제이다. https://ticssfm.tistory.com/32?category=1008893 [Algorithm] 탐욕(그리디) 알고리즘 (greedy algorithm) 그리디 알고리즘은 문제를 해결하는 과정에서 가장 좋다고 생각하는 방법을 선택하는 알고리즘이다. 예를 들어 노드 값의 최대 합은 5 -> 7 -> 9를 거쳐 21임을 알 수 있다. 그러나 그리디 알고리즘 ticssfm.tistory.com 문제를 표로 만들어서 살펴보자 예시에서는 P1 = 3, P2 = 1 ... 이런식으로 5가지 수를 받았다. 이 줄을 오름차순 정렬 한 후 계산을 수행하는 것이 가장 효율적이라고 나타낸다. 그러므로 입력을 받은 후 오름차순 정렬을 하고 계산을 수행해야 하..

알고리즘/백준 2021.10.11

[BaekJoon]백준 11047번_동전0 for JAVA

동전0 이 문제는 그리디 알고리즘 유형에 있는 문제이다. https://ticssfm.tistory.com/32?category=1008893 [Algorithm] 탐욕(그리디) 알고리즘 (greedy algorithm) 그리디 알고리즘은 문제를 해결하는 과정에서 가장 좋다고 생각하는 방법을 선택하는 알고리즘이다. 예를 들어 노드 값의 최대 합은 5 -> 7 -> 9를 거쳐 21임을 알 수 있다. 그러나 그리디 알고리즘 ticssfm.tistory.com 필요한 동전의 개수라는 말만 봐도 그리디를 사용함을 알 수 있다. 그리디는 가장 최적의 값을 우선적으로 할당해주는 알고리즘이므로 본 문제를 풀 때 가장 큰 값을 먼저 대입해봐야한다. Ai는 Ai-1의 배수라는 말은.. 어차피 입력은 여기서 해줄 것이기 ..

알고리즘/백준 2021.10.05

[Algorithm] 탐욕(그리디) 알고리즘 (greedy algorithm)

그리디 알고리즘은 문제를 해결하는 과정에서 가장 좋다고 생각하는 방법을 선택하는 알고리즘이다. 예를 들어 노드 값의 최대 합은 5 -> 7 -> 9를 거쳐 21임을 알 수 있다. 그러나 그리디 알고리즘을 사용하면 그때그때 최대값이 될 것이라고 추측되는 값을 사용하게 된다. 따라서 5 다음에 7, 10, 8 중 가장 큰 값인 10을 사용하고 4, 3 중 큰 값인 4를 사용하게 된다. 이처럼 그리디 알고리즘이 문제의 해결에 있어서 최적의 해를 매번 보장하지는 않는다. 그러나 그리디 알고리즘은 계산 속도가 빠르다. 그리디 알고리즘이 적절하다고 판단되는 문제에서는 최적의 해를 빠르게 산출할 수 있다. 예시 출처 : 이것이 취업을 위한 코딩 테스트다 예를 들어 N = 5이고 각 모험가의 공포도가 2 3 1 2 2..