전체 글 (434) 썸네일형 리스트형 [프로그래머스] 연속된 부분 수열의 합 힌트목표 합을 찾기:주어진 배열에서 연속된 부분 배열의 합이 k가 되는 구간을 찾아야 합니다.시작점과 끝점 두 개의 포인터를 사용하여 배열을 탐색하며, 포인터 사이의 값들의 합이 k와 같은지 확인합니다.이동 방식:초기에는 배열의 시작에서 끝까지 포인터를 이동하면서 합계를 계산합니다.만약 현재 합이 k보다 크다면 시작 포인터를 앞으로 이동시켜 구간을 줄입니다.합이 정확히 k가 되면 해당 구간을 기록하고, 더 짧은 구간이 있을 경우 그것으로 업데이트합니다.최적화 방법:각 구간에서의 합을 실시간으로 유지하며, 불필요한 연산을 줄이기 위해 더 짧은 구간이 발견될 때만 결과를 업데이트합니다.탐색이 끝날 때까지 가장 짧은 구간을 찾아냅니다. 정답은 더보기 클릭더보기class Solution { public i.. [프로그래머스] 큰 수 만들기 코드 힌트큰 수 만들기:주어진 숫자에서 일부 자릿수를 제거해 가능한 가장 큰 숫자를 만들어야 합니다.제거할 자릿수는 이미 고정되어 있기 때문에, 각 자릿수에서 최선의 선택을 해야 합니다.탐색 방법:각 자리에서 남은 숫자들 중에서 가장 큰 숫자를 선택합니다.선택한 숫자의 다음 위치부터 다시 탐색을 시작하여, 그 뒤에서 또 가장 큰 숫자를 찾습니다.범위 관리:현재 자리를 결정할 때, 앞으로 선택할 자리를 고려하여 탐색 범위를 설정합니다.한 번 선택된 숫자는 다시 선택하지 않도록 다음 선택할 범위를 줄여 나가야 합니다.최적화 아이디어:이미 선택된 숫자보다 더 작은 숫자는 무시하고, 그 다음 탐색부터 빠르게 넘어가면서 최종 큰 수를 만들어냅니다. 정답은 더보기 클릭더보기class Solution { pub.. [수학] 다양한 함수 함수(Function)란?함수는 입력을 결정하면 출력이 하나로 고정되는 관계를 말합니다. 즉, 어떤 수를 넣었을 때 이에 대응하는 수가 하나로 결정되어 출력되는 과정을 함수라고 부릅니다. 마치 기계처럼 입력값에 따라 일정한 결과를 반환하는 것입니다.수학적 예시: y=ax+b 여기서 a는 기울기, b는 y절편을 의미합니다.자바 예시:public int max(int a, int b) { if (a > b) return a; return b;} 이 함수는 두 숫자 중 더 큰 값을 반환합니다.지수 함수(Exponential Function)란?지수 함수는 y=ax의 형태를 가지며, 여기서 a는 '밑(base)'이고 x는 '지수(exponent)'입니다.지수 함수의 특징단조 증가: 지수 함수는 x.. [백준] 균형잡힌 세상 (4949번) 코드 힌트:입력 처리사용자는 여러 줄의 문자열을 입력합니다. 입력된 문자열이 .으로 시작하지 않을 때까지 반복적으로 처리합니다.input.replaceAll("[a-zA-Z.]*", "")와 input.replaceAll("\\s++", "")를 통해 괄호 외의 문자와 공백을 제거한 후 문자열을 처리합니다.스택을 이용한 괄호 짝 검사각 문자열을 순회하며 열린 괄호 ( 또는 [는 스택에 추가합니다.닫힌 괄호 ) 또는 ]를 만날 경우, 스택의 최상단에 있는 열린 괄호와 짝이 맞는지 확인합니다.짝이 맞으면 스택에서 제거하고, 그렇지 않으면 isAble을 false로 설정해 잘못된 괄호 짝임을 표시합니다.결과 출력문자열 순회가 끝난 후, isAble이 true이고 스택이 비어있으면 괄호가 올바르게 닫혔으므로 ".. [프로그래머스] 삼각 달팽이 코드 힌트:배열의 크기와 최대 값 계산:주어진 n에 대해 삼각형 배열을 채울 수 있는 최대 숫자를 계산한 후, 이 값을 기반으로 배열을 설정합니다.순차적으로 값 채우기:삼각형 형태로 숫자를 순차적으로 채우는 방식은 방향을 반복하며 이루어집니다.첫 번째 방향은 아래로, 두 번째는 오른쪽으로, 세 번째는 대각선 위로 이동합니다.배열에 값을 채우고 결과 반환:2차원 배열에서 값을 채운 후, 이를 1차원 배열로 변환하여 반환합니다. 정답은 더보기 클릭더보기class Solution { public int[] solution(int n) { int max = n * (n + 1) / 2; // 삼각형에 들어갈 최대 숫자 계산 int[][] map = new int[n][n]; /.. [프로그래머스] 쿼드압축 후 개수 세기 코드 힌트문제의 핵심:2차원 배열에서 동일한 값들로 이루어진 구역을 찾아 이를 압축하는 방식입니다.압축이 가능하면 해당 구역의 숫자(0 또는 1)의 개수를 기록하고, 압축이 불가능하면 구역을 4등분하여 재귀적으로 탐색합니다.압축 조건:주어진 size 크기의 구역이 모두 동일한 값(0 또는 1)으로 이루어져 있는지 확인합니다.만약 동일하다면 해당 값을 카운트합니다.재귀적인 분할:압축이 불가능한 경우, 해당 구역을 4등분하여 각 작은 구역에 대해 다시 압축을 시도합니다.이를 통해 점점 작은 영역으로 압축을 시도하게 됩니다.결과 배열:배열 result[0]은 0의 개수를, result[1]은 1의 개수를 저장합니다. 정답은 더보기 클릭더보기class Solution { int[] result = .. [백준] 보물 (1026번) 코드 힌트목표:두 배열의 원소를 재배열하여, 각 원소끼리 곱한 값들의 합이 최소가 되도록 계산하는 문제입니다.정렬 방식:arr1은 오름차순으로 정렬하고, arr2는 내림차순으로 곱셈을 진행합니다. 이렇게 하면, 큰 값과 작은 값이 곱해져 전체 곱셈 결과를 최소화할 수 있습니다.곱셈과 합산:arr1의 작은 값과 arr2의 큰 값을 곱해가며, 각 곱셈 결과를 result 변수에 누적하여 최소 값을 얻습니다.배열 크기와 정렬:배열의 크기 n을 입력받고, 두 배열을 각각 정수 배열로 변환한 후, 정렬을 수행한 뒤 대응하는 원소들을 곱합니다.정답은 더보기 클릭더보기import java.util.*;class Main { public static void main(String[] args) { i.. [백준] 별 찍기 - 8 코드 힌트출력되는 행과 열:별의 출력은 총 n*2 - 1개의 행과 n*2개의 열로 이루어져 있습니다.각 행에서 양쪽 끝에 별이 출력되며, 별의 개수는 첫 번째 행에서 마지막 행으로 갈수록 점점 줄어듭니다.별이 증가하는 구간:별이 증가하는 구간은 첫 번째 행부터 n-1번째 행까지입니다.이때는 i가 작을수록 별의 개수가 많고, i >= j 또는 n*2 - i - 1 별이 감소하는 구간:별이 감소하는 구간은 n번째 행 이후부터 시작하여 마지막 행까지입니다.i >= n인 경우, i j일 때 별을 출력합니다.공백 처리:별을 출력하지 않는 부분은 공백을 출력하여 별의 형태를 만들기 위한 영역입니다.조건에 맞지 않는 부분에는 공백(" ")을 출력합니다. 정답은 더보기 클릭더보기import java.util.*;cl.. 이전 1 ··· 17 18 19 20 21 22 23 ··· 55 다음