알고리즘10 [나머지 연산] BOJ4375 문제 2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 각 자릿수가 모두 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, n이 주어진다. 출력 각 자릿수가 모두 1로만 이루어진 n의 배수 중 가장 작은 수의 자리수를 출력한다. 예제 입력 1 3 7 9901 예제 출력 1 3 6 12 요약 : 2와 5로 나누어 떨어지지 않는 정수 N이 주어졌을 때, 1로만 이루어진 N의 배수를 찾는 문제 문제가 발생했다. 처음에 무작정 n을 구하려 하니 시간 초과가 났다. sum을 구하는 시간이 커지면서 발생하는 것이므로 반드시 sum을 구하는 시간을 단축해야 한다. import .. 2024. 3. 14. Sort N^2 : bubble, selection, insertion NlogN : quick, merge, heap quick 평균적으로 nlogn을 보장하지만 최악의 경우 n^2이다. pivot을 2로 잡고 왼쪽에는 2보다 작은 것들을 오른쪽에는 큰 것들을 위치시키다. 높이가 NlogN이고 길이가 N이라서 NlogN 이 된다. pivot을 2로 잡으 왼쪽이 짧아지고 오른쪽이 길어져 valance가 깨지게 된다. valance가 나쁠수록 높이가 길어진다. 따라서 pivot을 잘 정해야한다. merge nlogn을 보장 무조건 반씩 자른다. heap 최소 정렬하고 빼오고 rearrange 하여 또 빼오고 하는 과정이 있다. import java.util.Arrays; import java.util.Collect.. 2023. 8. 3. [BOJ]1316 그룹단어체커 중복이라 하여 map을 생각했다. 내가 map을 생각할 때면 락커룸에 이름 태그를 붙인 책들이 연상된다. 그래서 python에서는 dictionary라고 부르는 것 같다. 코드에서 핵심은 단어를 정직하게 순회하는 것이다. 그리고 boolean으로 이 책들의 상태를 어떠한 로직으로 하자가 있는지 없는지 판단하는 method문을 짠다. package BOJ1316_그룹단어체커; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; public class Main { static int N; static Strin.. 2023. 6. 22. [이론 노트]단순조합과 단순재귀 2023. 6. 19. 이전 1 2 3 다음