본문 바로가기

Java11

[Algorithm] Greedy 30 (백준) - 에이젠 https://www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 공략 10^5개의 숫자로 구성된다라는 말은 예제를 보면 10^5보다 큰 숫자가 있었기에 자리수가 10^5 자리까지 있다는 것을 알 수 있었습니다. 완전탐색으로는 역시 풀 수 없겠죠. 1. 숫자 안에 0 이 꼭 필요하다. 30의 배수이기 때문에 0이 없으면 안 되는 것을 알 수 있었습니다. 1의자리 빼고는 3의배수가 나오도록 가장 큰 수를 찾아야하는데... 결국 힌트를 찾아보았습니다. 2. 모든 자.. 2022. 9. 12.
[Algorithm] Greedy 대회or인턴 (백준) - 에이젠 https://www.acmicpc.net/problem/2875 2875번: 대회 or 인턴 첫째 줄에 N, M, K가 순서대로 주어진다. (0 ≤ M ≤ 100, 0 ≤ N ≤ 100, 0 ≤ K ≤ M+N), www.acmicpc.net 실수 남자1명 여자2명인데 반대로 읽음... 낙오자 계산할때 팀매칭된 그룹 수를 갱신해 주지 않아서 틀림. 공략 알고리즘 중급 1/3 의 그리디 연습 문제입니다. 남자가 인원수가 훨씬 많다는 가정하에 과정을 설명해보겠습니다. 1. 각각 주어진 남 여 인원수를 팀에 필요한 인원수로 나눕니다. M / 2 : 몫1 + 나머지1 , N / 1 : 몫2 + 나머지2 2. 각각 나눈 몫중에 작은 값이 인턴이 없을 때 나올 수 있는 팀 개수입니다. 남자가 훨씬 많으니 몫2가 .. 2022. 9. 11.
[Algorithm] Greedy 수 묶기(백준) - 에이젠 https://www.acmicpc.net/problem/1744 1744번: 수 묶기 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 www.acmicpc.net 실수 처음에 입출력 예제의 예상 값과 답이 다르게 나오길래 문제를 잘못이해했나? 하고 헤맸는데 알고보니 첫째줄은 수열의 길이를 입력하는 것인데 첫째줄까지 연산에 포함시키는 바보짓을 했네요. ㅎㅎ 공략 알고리즘 중급 1/3 의 그리디 연습 문제입니다. 1. 정렬 수행. 2. 묶는다 -> 큰 양수 x 큰 양수 (1이 아닌 양수) -> 작은 음수 x 작은 음수 -> 작은 음수 x 0 3. 덧셈 수행.. 2022. 9. 10.
[Algorithm] Greedy 잃어버린 괄호(백준) - 에이젠 https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net '공략 알고리즘 중급 1/3 의 그리디 연습 문제입니다. + - 연산만으로 이루어진 식에 적절히 괄호를 사용하여 최솟값을 출력하는 것이 목표입니다. 가장 큰 수를 뺄셈해주면 최솟값이 나오는 것을 우리는 알고 있죠. 따라서 모든 +연산을 수행하고 마지막에 남은 - 연산을 해주면 답이 나오겠습니다. import java.util.*; public class Main { static Scann.. 2022. 9. 9.
[error] java.util.regex.PatternSyntaxException: Dangling meta character '+' near index 0+|- 덧셈뺄셈 식이 입력되면 +와 - 기호를 기준으로 숫자 문자열을 자르려고 했는데 에러가 발생. 해결 방법: https://soo-vely-dev.tistory.com/20 [에러로그] java.util.regex.PatternSyntaxException: Illegal repetition 안녕하세요! 오늘은 Java에서 '{'(특수문자)를 기준으로 split을 통해 문자열을 자르는 도중에 아래와 같은 에러가 발생하였습니다. java.util.regex.PatternSyntaxException: Illegal repetition { at java.ut.. soo-vely-dev.tistory.com https://smartpro.tistory.com/9 [Java] 문자열 자르기 - 여러 구분자/특수기호 사.. 2022. 9. 9.
[Algorithm] Dijkstra 특정한 최단경로 (백준) - 에이젠 https://www.acmicpc.net/problem/1504 1504번: 특정한 최단 경로 첫째 줄에 정점의 개수 N과 간선의 개수 E가 주어진다. (2 ≤ N ≤ 800, 0 ≤ E ≤ 200,000) 둘째 줄부터 E개의 줄에 걸쳐서 세 개의 정수 a, b, c가 주어지는데, a번 정점에서 b번 정점까지 양방향 길이 존 www.acmicpc.net 공략 이전에 풀었던 최소비용 구하기 문제와 같은 다익스트라 알고리즘 문제 입니다. 공략법은 거의 같습니다만 추가로 생각해야할 부분이 서로 다른 두 개의 노드( V1 , V2) 를 무조건 통과해야한다는 조건이 생겼다는 것이죠. 예전에 BFS문제를 풀면서 각 두 경로의 길이를 비교해서 풀었던 기억이 있었기에 V1 -> V2과 V2 -> V1 각각의 경로 길.. 2022. 8. 26.
[Algorithm] 6월9일 알고리즘 연습 (프로그래머스 LEVEL2) - 에이젠 Lv. 2 다리를 지나는 트럭 - 성공 방법이 떠오르지 않아서 다리와 트럭 객체를 만들어서 해결해보려했다. 하지만 ConcurrentModificationException 에러가 발생하였다. Map.remove()과정에서 발생하였을 것이다. 1. map의 Key로 활용한 트럭객체의 값이 변경되는 mutable한 객체이기때문에 문제가 발생하는 것 같다. -> 아무 객체나 Map의 Key값으로 쓰면 안 되겠다. 값이 변하는 객체X 2. 두번째 이유는 반복문이 도는 도중에 컬렉션값을 변경하였기때문에 발생하는 것 같다. https://imasoftwareengineer.tistory.com/85 자바 Collection Iterator - ConcurrentModificationException 자바에서 Ite.. 2022. 6. 9.
728x90