[백준] 5525번_IOIOI(Java)
문제 풀이 백준의 5525번 문제입니다. 문제 출처 (1) 문제 파악 (2) 문제 풀이 방법 생각하기 문자열 속에서 특정 문자열을 찾는 것입니다. 여기서 포인트는 OI가 반복된다는 것인데요! OI가 연속으로 반복되는 횟수를 찾고 맨 앞이 I이면 count를 증가해주고, 시작 인덱스를 2 증가시키면 됩니다! 만약 OI가 연속되지 않을 경우에는 ...
문제 풀이 백준의 5525번 문제입니다. 문제 출처 (1) 문제 파악 (2) 문제 풀이 방법 생각하기 문자열 속에서 특정 문자열을 찾는 것입니다. 여기서 포인트는 OI가 반복된다는 것인데요! OI가 연속으로 반복되는 횟수를 찾고 맨 앞이 I이면 count를 증가해주고, 시작 인덱스를 2 증가시키면 됩니다! 만약 OI가 연속되지 않을 경우에는 ...
문제 풀이 백준의 1149번 문제입니다. 문제 출처 (1) 문제 파악 (2) 문제 풀이 방법 생각하기 거리에 있는 N개의 집을 색칠하는데 최소 누적합을 구하는 문제입니다. 이때 조건은 인접해 있는 집과는 다른 색상으로 집을 칠해야 한다는 것입니다 현재 위치의 집이 R인 경우 이전 집의 색상은G나 B가 되어야 한다는 뜻이죠! 이때 전체 집을 ...
문제 풀이 백준의 11726번 문제입니다. 문제 출처 (1) 문제 파악 (2) 문제 풀이 방법 생각하기 다이나믹 프로그래밍을 통해 문제를 해결해봅시다! 직사각형을 구성할 수 있는 경우는 두 가지가 있습니다. 가장 오른쪽에 1x2 타일을 놓는 경우 가장 오른쪽에 2x1 타일을 놓는 경우 그러므로 아래와 같은 점화식을 도출할 수 ...
문제 풀이 백준의 10026번 문제입니다. 문제 출처 (1) 문제 파악 (2) 문제 풀이 방법 생각하기 탐색을 통해 같은 색상을 가진 영역을 찾는 문제입니다. DFS를 활용하여 DFS가 얼마나 수행이 되는지 확인하면 같은 색상의 영역이 몇 개인지 알 수 있을 것입니다. 적록색약이 없는 사람이 보는 영역의 개수를 구하고, ‘G’로 표현된 영역을...
메소드의 파라미터 전달 방법 메소드를 호출할 때 파라미터 값을 전달하는 방법은 두 가지가 있습니다. 하나는 Call by Value 이고 다른 하나는 Call by Reference 입니다. Call by Value Call by Vaule는 메소드를 호출할 때 데이터 값을 넘겨주는 방식을 뜻합니다. (Pass by Value 라고도 부릅니다.) ...
선택 정렬 선택 정렬은 대상 데이터에서 최대나 최소 데이터를 데이터가 나열된 순으로 찾아가며 선택하는 방법입니다. 정렬 방법 남은 정렬 부분에서 최솟값 또는 최댓값을 찾는다. 남은 정렬 부분에서 가장 앞에 있는 데이터와 선택된 데이터를 swap한다. 가장 앞에 있는 데이터의 위치를 변경해 남은 정렬 부분의 범위를 축소한다. 전체...
버블 정렬 버블 정렬은 두 인접한 데이터의 크기를 비교해 정렬하는 방법입니다. 정렬 방법 비교 연산이 필요한 범위를 설정한다. 인접한 데이터 값을 비교한다. swap 조건에 부합하면 swap 연산을 수행한다. 비교 대상이 없을 때까지 위의 동작을 반복합니다. 만약 특정 루프 전체 영역에서 swap이 한 번도 일어나지 않앗다면...
문제 풀이 백준의 1377번 문제입니다. 문제 출처 (1) 문제 파악 버블 정렬 알고리즘을 통해 배열의 값을 정렬할 때 swap한 횟수를 구하는 문제입니다. (2) 문제 풀이 방법 생각하기 문제에 주어진 코드를 그대로 사용해서 값을 구하면 N의 최대 값이 500_000이기 때문에 시간 초과가 나옵니다. (버블 정렬의 시간 복잡도는 O(n^2...
문제 풀이 백준의 1966번 문제입니다. 문제 출처 (1) 문제 파악 FIFO(First-In-First-Out) 방식인 기존의 프린터와는 다르게 문서의 중요도에 따라 프린트하는 순서를 조정하는 프린터 프로그램을 만드는 문제입니다. (2) 문제 풀이 방법 생각하기 나머지 문서들 중 현재 문서보다 중요도가 높은 문서가 하나라도 있다면, ...
문제 풀이 백준의 18110번 문제입니다. 문제 출처 (1) 문제 파악 점수가 주어지고 해당 점수들의 30% 절사 평균을 구하는 문제입니다. (2) 문제 풀이 방법 생각하기 30% 절사 평균으로 정해져 있으니 주어진 수의 개수 N개 중 위, 아래로 Math.round(N * 0.15)개를 빼고 평균을 계산해주면 됩니다. N개의 점수를 입력받...