자연수 A를 B번 곱한 수를 알고 싶다. 단 구하려는 수가 매우 커질 수 있으므로 이를 C로 나눈 나머지를 구하는 프로그램을 작성하시오.a를 b로 나눈다고 가정a = b \* c + da^2 = b \* c1 + d1a^3 = b \* c2 + d2a^2 = a(bc
https://www.acmicpc.net/problem/2104먼저 로직은 간단하다.가운데를 기준으로 왼쪽 오른쪽을 재귀를 통해 나눈뒤, 각 재귀에서 (합 \* 최소값)을 구한 뒤 최대값인지 비교를 하면 된다.하지만, 자바로 직접 작성해보니 정 가운데 값 기
https://www.acmicpc.net/problem/1725위와 같은 로직을 이용하여 해결할 수 있다.재귀를 이용해 계속 max값을 찾는 구조로 이루어져 있다.
https://www.acmicpc.net/problem/1992for문으로 모든 값을 돌며, 첫 인덱스의 값을 num으로 두고 전부 num과 같은지 검사를 한다.이때 만약 다른 수가 나오면 분할을 해야하므로 (를 출력시키고 전체를 4분할로 나누고 다시 이 메
https://www.acmicpc.net/problem/1074예를 들어 3 5 3을 입력한다면, 2^3 X 2^3 배열에서 (5, 3)의 숫자가 몇인지 출력해야 합니다.이때 로직은 아래와 같습니다.for 문을 돌면서 재귀로 분할을 하지만, 조건을 넣었습니다
https://www.acmicpc.net/problem/2447이 문제를 해결할때 처음에는 int의 이중배열로 해결하려고 했으나 메모리 초과가 발생하여 String에 넣는 방식으로 변경했더니 쉽게 해결이 되었다.
https://www.acmicpc.net/problem/2339먼저 경우의 수가 3가지로 나뉜다.1\. 구간이 잘못 나눠진 경우2\. 구간이 잘 나눠진 경우3\. 더 나눠봐야 하는 경우나눠봐야 하는 경우에는 불순물이 있는 라인만 경계선으로 나눌 수 있으므로
https://www.acmicpc.net/problem/1463먼저 이 문제는 다이나믹 프로그래밍을 이용해야 한다.다이나믹 프로그래밍은 상향식과 하향식이 있는데 여기서는 상향식을 이용하였다.문제에서 3가지의 방법을 줬다.3으로 나눠지면 3을 나눌 수 있다.2
https://www.acmicpc.net/problem/2193이 문제는 어떻게 진행되는지 직접 찾아보면 금방 알 수 있다.규칙을 잘 살펴보면 이친수에서마지막 수가 0이면 다음은 0과 1이 올 수 있고마지막 수가 1이면 다음은 0밖에 못온다이 성질을 이용해서
https://www.acmicpc.net/problem/1904의 규칙을 보면 피보나치 수열의 로직을 이용하면 쉽게 해결할 수 있다.
https://www.acmicpc.net/problem/11726규칙을 찾으면 Numi 는Numi - 2의 도형에서 2x1 도형 2개를 뒤에Numi - 1의 도형에서 1x2 도형 1개를 뒤에 붙이면 완성할 수 있다.그러므로 피보나치 수열을 이용하여 해결할 수
먼저 이전 문제를 한번 보고오면 이해가 쉬울 것이다.https://velog.io/@seungju0000/11726-2xn-%ED%83%80%EC%9D%BC%EB%A7%81전과 다른 점이 있다면Numi의 도형은Numi - 2의 도형 뒤에 2x1 2개를 붙이는
https://www.acmicpc.net/problem/9465이 문제는 대각선 계산을 이용하면 된다.하지만 이 방법을 이용했을때 문제가 하나 발생하는데, 대각선이 아니라 한 칸 더 앞선 대각선의 경우가 값이 더 클때가 있다.예를 들어 위의 경우 50, 50
https://www.acmicpc.net/problem/1021나는 이 문제를 큐(Queue)를 이용하여 해결하였다.큐의 가장 큰 특징은 리스트의 첫 번째 값을 출력하거나 제거할 수 있고, 리스트의 마지막에 새로 추가한다는 것이다.poll - 첫 번째 값을
https://www.acmicpc.net/problem/1158나는 이 문제를 큐(Queue)를 이용하여 해결하였다.poll - 첫 번째 값을 반환하고 제거한다.remove - 첫 번째 값을 제거한다.peek - 첫 번째 값을 반환한다.add - 리스트의 마
https://www.acmicpc.net/problem/2346자료구조 중에서 덱(Deque)을 이용하여 해결이 가능하다.addFirst() - 맨 앞에 추가한다.addLast() - 맨 뒤에 추가한다.peek() - 맨 앞 값을 가져온다.pollFirst(
https://www.acmicpc.net/problem/2840이 문제는 그림으로 보면 설명이 쉽다. 원판으로 설명하였지만, 사실 위처럼 연결리스트로 놓고 고민하는 것이 편할 수도 있다.가장 중요한 요점은 알파벳을 넣으려고 할 때의 조건인데C를 넣으려고 할때
https://www.acmicpc.net/problem/1406로직은 커서 기준으로 왼쪽 오른쪽 덱을 따로 나누어 계산하는 것이다.커서가 왼쪽으로 한칸 이동해야 한다면 Left덱의 마지막 값을 Right덱의 첫번째 값으로 추가하는 방식이다.또, Scanner
https://www.acmicpc.net/problem/5397이 문제는 이전 문제 1406번 에디터 를 해결했다면 매우 쉽게 해결이 가능하다.deque를 이용해서 해결하였으며 stack이나 LinkedList를 이용해도 해결이 가능한 것으로 알고 있다.여기
https://www.acmicpc.net/problem/3190먼저 이 문제를 해결하기 위해 map을 선언하고 5x5가 있다면 6x6으로 만든 뒤 벽으로 둘러싼 형식을 만들었다. 그리고 사과의 위치를 2로 만들었다.또, 덱을 통해 뱀의 각 위치를 표현했는데c