그리드 알고리즘 3

백준 1036번 : 36진수 자바

🧫 문제 분석 ✔️ 출처36진수 골드 1 📖 문제  주어진 입력 중 Z로 k개 만큼 바꾸고 모두 더한 값이 최댓값이 되게 구하고, 그 값을 36진수로 변환하여 출력 정말정말 많은 시간을 썼고, 다른 블로그의 앞부분만 슬쩍봐서 큰 수를 어떻게 다루는지 참고하면서 풀었다. 결국에는 내가 생각한 아이디어와 로직이 맞았고, 큰 수를 다루는 BigInteger를 잘 안써서 떠오르지 못했던 것이다..   나의 경우 0~9 는 배열 각 인덱스 0~9에 1:1로 사용A~Z는 -'7'을 해주면 'A' - '7' = 10이 되므로배열을 35까지 만든 후 배열의 인덱스 0~9 A~Z까지 0~35로 사용하였다. 이 문제에서 중요한 것은Z로 바꾼 K개의 숫자가 무엇이냐다.맨 앞자리 수를 Z로 만든다고 무조건 최댓값이 나오는..

baekjoon/String 2024.08.28

백준 1541번 : 잃어버린 괄호 자바

🧫 문제 분석 ✔️ 출처잃어버린 괄호 실버 2 📖 문제 이 문제같은 경우첫번째 수를 저장한 뒤 +가 나오면 더해준다. 그런데 한 번이라도 -가 나오면 그 뒤에 아무리 많은 +가 나와도 처음 나온 - 때문에 이들은 전부 합한 후 -로 빼게 된다. 따라서 한 번이라도 - 가 나오면 저장 한 수에 계속해서 -로 빼주면 된다.  예를 들어 아래의 입력이 주어진다고 하자1+2-4-5+2+3처음 1 +2까지는 더하고 -가 나왔으므로 괄호를 쳐서 최솟값을 만들어야 하기에 - 뒤에 나오는 +로 더해지는 모든 수들을 빼주면 된다.(1 + 2) - 4 - 5 - 2 - 3 = -11(1+2)  -4 - (5 + 2 + 3) =   -11  🔅 문제 풀이import java.io.*;public class Main {..

baekjoon/Greedy 2024.08.26

백준 1931번 : 회의실 배정 자바

🧫 문제 분석✔️ 출처회의실 배정 실버 1 📖 문제 정렬 문제로 회의가 끝나는 시간을 기준으로 정렬하되 같다면 시작시간을 오름차순으로 정렬해야한다.주의할 점은 끝나는 시간에 바로 다른 회의가 시작할 수 있다는 것이다.  정렬 후 마지막 회의 시간 보다 다음 회의의 시작시간이 크거나 같으면 이는 가능한 회의이므로 마지막 회의시간을 다음 회의가 끝나는 시간으로 바꾼다.   종료시간이 같다면 시작시간을 오름차순 정렬을 해야하는 이유예를 들어보면41 22 24 42 4 이것을 끝나는 시간으로만 정렬했을 경우입력 순서대로 1 22 24 42 4 이대로 들어왔을 것이고 마지막 회의시간은 2 -> 2-> 4로 되고 2 4 일때 마지막 회의시간 = 4 이기에 이 회의는 무시된다. 따라서 잘못된 답을 내놓게 ..

baekjoon/Greedy 2024.08.24