전체 글 (471) 썸네일형 리스트형 [프로그래머스] 타겟넘버 코드 힌트2중 for문 사용하기:2차원 배열을 순회하려면 i와 j 두 개의 인덱스를 사용하여 배열의 모든 요소를 탐색합니다.i는 행 인덱스를, j는 열 인덱스를 나타냅니다.인덱스 합 조건 확인:배열의 각 요소에 대해 i + j의 합이 주어진 값 k 이하인지를 확인합니다.조건을 만족할 때만 해당 요소의 값을 result에 더해줍니다.변동 길이 배열 처리:배열 board의 각 행은 서로 다른 길이를 가질 수 있으므로, 내부 for문에서 열의 길이를 board[i].length로 동적으로 설정합니다.이를 통해 배열의 크기에 상관없이 올바르게 요소를 탐색할 수 있습니다.결과 반환:모든 조건을 만족하는 요소들의 합을 계산한 후, 최종 결과를 반환합니다. 정답은 더보기 클릭더보기class Solution { .. [프로그래머스] 게임 맵 최단거리 코드 힌트BFS (너비 우선 탐색) 사용하기최단 거리를 찾는 문제에서는 BFS를 사용하는 것이 효율적입니다. BFS는 시작점에서 모든 노드를 레벨별로 탐색하며, 가장 먼저 도달한 경로가 최단 경로가 됩니다. DFS를 사용할 경우, 모든 경로를 탐색해야 하므로 효율성 문제로 인해 시간 초과가 발생할 수 있습니다.Queue 자료구조 활용BFS를 구현할 때는 Queue를 사용합니다. Queue는 FIFO(First-In-First-Out) 구조를 가지며, 탐색할 좌표와 현재까지의 거리를 저장하는 데 유용합니다. Queue를 통해 현재 위치에서 가능한 모든 이동을 처리하고, 다음 단계의 위치와 거리 정보를 큐에 추가합니다.좌표와 거리 저장탐색 과정에서 각 좌표와 해당 좌표까지의 거리 정보를 함께 저장합니다. 이.. [백준] 그림 1926번 문제 힌트BFS 방법으로 풀기큐(Queue)를 이용하여 그림을 찾습니다.(i, j) 위치에서 그림을 찾기 시작하여, 상하좌우 인접한 1들을 큐에 넣고 방문 처리합니다.큐가 비어질 때까지 반복하며 그림의 크기를 계산합니다.DFS 방법으로 풀기스택(Stack)을 이용하거나 재귀 호출을 통해 그림을 찾습니다.(i, j) 위치에서 그림을 찾기 시작하여, 상하좌우 인접한 1들을 스택에 넣고 방문 처리합니다.스택이 비어질 때까지 반복하며 그림의 크기를 계산합니다.방문 유무 파악하기도화지와 같은 크기의 boolean[][] 배열을 사용하여 true, false를 이용하면 쉽게 구할 수 있습니다.BFS와 DFS로 해결하는 방법BFS로 해결하는 방법도화지를 탐색하면서 방문하지 않은 1을 찾습니다.찾으면 큐를 사용하여 B.. [백준] 수 찾기 1920번 코드 힌트자료구조: HashMap을 사용하여 문자열의 존재 여부를 빠르게 확인하는 것이 핵심입니다.입출력 최적화: BufferedReader와 BufferedWriter를 사용하여 대량의 입력과 출력을 효율적으로 처리합니다.문자열 처리: 입력된 문자열을 공백으로 분리하여 배열에 저장하고, 이를 해시맵과 비교하여 결과를 도출합니다. 정답은 더보기 클릭더보기import java.util.*;import java.io.*;public class Main { public static void main(String[] args) throws NumberFormatException, IOException { // 입력을 효율적으로 받기 위해 BufferedReader 사용 Buffer.. [알고리즘] 삽입 정렬 InsertionSort 정렬 알고리즘이란?정렬 알고리즘은 배열의 원소들을 조건에 맞게 순서대로 정렬하는 알고리즘입니다. 원소들이 어떤 순서로 들어오는지에 따라 적절한 정렬 알고리즘을 선택할 수 있습니다.선택 기준시간 복잡도: 알고리즘이 실행되는 데 소요되는 시간공간 복잡도: 알고리즘이 사용하는 메모리의 양안전성 (Stability): 동일한 값의 원소들의 순서가 유지되는지 여부정렬 알고리즘 종류와 시간 복잡도정렬 알고리즘 종류최선 시간 복잡도평균 시간 복잡도최악 시간 복잡도BubbleSort (버블 정렬)O(n)O(n^2)O(n^2)SelectionSort (선택 정렬)O(n^2)O(n^2)O(n^2)InsertionSort (삽입 정렬)O(n)O(n^2)O(n^2)MergeSort (병합 정렬)O(n log n)O(n log.. [프로그래머스] 배열 만들기 4 코드 힌트Stack 사용하기: 문제를 해결할 때 스택(Stack) 자료구조를 사용하면 더 간단하게 구현할 수 있습니다. 스택은 LIFO(Last In First Out) 구조로, 마지막에 추가된 원소가 가장 먼저 꺼내집니다.문제 조건 잘 이해하기: stk에 원소가 있는데 stk의 마지막 원소가 arr[i]보다 크거나 같으면 stk의 마지막 원소를 stk에서 제거합니다. 라는 조건이 있습니다. 해당 조건을 만족한다면 i++를 하라는 조건이 없습니다. 즉 계속해서 해당 arr[i]에 대해 조건이 맞다면 반복하라는 의미입니다. 정답은 더보기 클릭더보기import java.util.*;class Solution { public int[] solution(int[] arr) { // 결과를 저.. [Java] 예외 Exception와 예외 처리 예외(Exception)란?프로그램 실행 중 발생하는 이벤트로, 클라이언트(사용자)가 잘못된 조작을 하거나 개발자의 코드 실수로 인해 발생하여 프로그램 흐름을 방해하는 것을 말합니다.예외 예시:사용자의 잘못된 조작(잘못된 데이터 입력)잘못된 연산 (예: n / 0)잘못된 로직(코딩 실수)시스템 과부화오류와 에러의 차이점오류(Error)는 시스템 레벨에서 발생하는 것으로, 개발자가 조치할 수 없는 수준을 의미합니다. 시스템이 종료되어야 할 수준의 상황이며, 개발자는 이를 미리 예측하여 방지해야 합니다.자바에서 Error와 Exception의 공통점public class Exception extends Throwablepublic class Error extends Throwable클래스 모두 Throwab.. [프로그래머스] 숫자 짝꿍 코드 힌트문제 설명주어진 두 문자열 X와 Y에서 공통으로 포함된 숫자들로 만들 수 있는 가장 큰 숫자를 구하는 문제입니다.자릿수 배열 생성각 문자열에서 숫자의 빈도를 저장할 배열을 생성합니다.int[] x = new int[10]; : X 문자열에 대해 0부터 9까지 각 숫자의 빈도를 저장하는 배열입니다.빈도 계산X와 Y 문자열의 각 자릿수를 배열에 저장합니다.X 문자열의 경우: for (int i = 0; i Y 문자열의 경우: for (int i = 0; i 최댓값 문자열 생성9부터 0까지 배열을 돌면서 공통으로 존재하는 숫자를 문자열로 저장합니다.숫자가 큰 순서대로 비교하여 문자열에 저장하면 최댓값을 만들 수 있습니다.StringBuilder 사용문자열을 효율적으로 저장하기 위해 StringBuil.. 이전 1 ··· 41 42 43 44 45 46 47 ··· 59 다음 목록 더보기