본문 바로가기

전체 글

(437)
[자료구조] Linked List Linked List는 데이터를 저장하는 선형 자료구조 중 하나로, 각 요소가 다음 요소에 대한 참조(포인터)를 가지고 있어 동적으로 크기를 조정할 수 있습니다.Linked List의 핵심 요소노드(Node): Linked List의 기본 단위로, 각 노드는 두 가지 정보를 가집니다.데이터(Data): 노드가 저장하는 실제 값.포인터(Next/Pointer): 다음 노드를 가리키는 참조.헤드(Head): Linked List의 첫 번째 노드를 가리키는 포인터.Linked List의 종류단일 연결 리스트(Singly Linked List):각 노드는 하나의 포인터(Next)만 가짐.마지막 노드의 포인터 값은 null.이중 연결 리스트(Doubly Linked List):각 노드는 두 개의 포인터(Front..
[프로그래머스] 소인수분해 코드 힌트소인수 분해 사용주어진 정수 n을 소인수로 분해하여 n을 나눌 수 있는 최소의 소수를 찾습니다. 이를 통해 n을 작은 소수로 나누면서 반복하여 소인수를 찾아냅니다.중복 제거와 정렬List를 사용하여 중복된 소인수를 제거하면서 소인수를 저장합니다.Set을 사용하여 자동으로 중복을 제거하며, 마지막에 배열로 변환한 후 정렬하여 결과를 반환합니다.반복문과 조건문 활용while 반복문을 사용해 n이 1이 될 때까지 소인수 분해를 계속합니다.for 반복문을 사용해 n을 나눌 수 있는 가장 작은 소수를 찾아내어 n을 나눕니다.결과 배열 생성List를 배열로 변환하여 결과를 반환합니다.Set을 배열로 변환하고 정렬한 후 반환합니다.  정답은 더보기 클릭더보기import java.util.*;class Sol..
[프로그래머스] 다리를 지나는 트럭 코드 힌트트럭 객체 사용하기Truck 클래스를 사용해 각 트럭의 무게와 다리에서 남은 이동 거리를 관리합니다. 이 클래스를 통해 트럭이 다리에서 언제 빠져나가는지를 계산할 수 있습니다.현재 다리 위의 트럭 상태 관리List를 사용하여 다리 위에 있는 트럭들을 순서대로 관리합니다. 리스트의 각 요소는 트럭 객체로, 이들이 다리를 이동하는 과정을 추적합니다.매 초마다 트럭들의 남은 이동 거리를 줄이며, 다리를 완전히 건넌 트럭은 리스트에서 제거하고, 다리 위의 현재 무게를 감소시킵니다.새로운 트럭 진입 처리새로운 트럭이 다리에 진입할 수 있는지 확인합니다. 다리의 현재 무게와 비교하여 트럭이 진입 가능한 경우 리스트에 추가하고, 다리 위의 트럭들을 이동시킵니다.만약 현재 대기 중인 트럭이 다리의 무게 제한을..
[프로그래머스] [3차] n진수 게임 코드 힌트10진수를 n진수로 변환하기주어진 숫자를 원하는 진수로 변환하려면, 나머지 연산을 반복하여 숫자를 변환해야 합니다.예를 들어, 16진수로 변환할 때 10 이상은 'A', 'B' 등으로 표시됩니다. 숫자를 변환한 후 결과는 역순으로 정리합니다.이 과정을 통해 0부터 순차적으로 모든 숫자를 n진수로 변환하게 됩니다.순번에 맞는 숫자 선택하기각 숫자를 변환한 후, 변환된 진법 숫자를 순서대로 확인하면서 자기 차례에 해당하는 숫자만 선택합니다.n진수로 변환된 숫자에서 각 자릿수는 차례대로 참가자에게 할당됩니다. 자신의 순번에 맞는 숫자를 찾아서 결과에 추가합니다.순번 관리플레이어의 차례는 순환적으로 돌아가므로, 순번을 % 연산으로 관리합니다.예를 들어, 참가자가 4명이라면 0, 1, 2, 3으로 순서가..
[프로그래머스] [1차] 뉴스 클러스터링 코드 힌트소문자 변환입력된 두 문자열을 모두 소문자로 변환하여 대소문자 구분 없이 비교할 수 있도록 합니다.다중집합 생성문자열을 2글자씩 잘라서 다중집합을 만듭니다.각 부분 문자열은 알파벳으로만 구성되어야 하며, 두 개의 문자로 구성된 경우에만 다중집합에 추가됩니다.예를 들어, "ab+c"라는 문자열이 있을 때, "ab"는 다중집합에 포함될 수 있지만 "b+"와 "+c"는 알파벳이 아니므로 다중집합에 포함되지 않습니다.이 다중집합들은 나중에 교집합과 합집합을 계산하는 데 사용됩니다.자카드 유사도 계산str1과 str2의 다중집합이 모두 비어 있을 때, 두 문자열은 완전히 유사하다고 간주하므로 유사도는 1로 간주되어 65536을 반환합니다.교집합과 합집합의 크기를 구한 후, 교집합 크기를 합집합 크기로 나..
[프로그래머스] 직사각형 넓이 구하기 코드 힌트좌표 분석주어진 점들의 좌표를 통해, 최소 x값 (x1)과 최대 x값 (x2), 최소 y값 (y1)과 최대 y값 (y2)을 찾습니다.x1, x2, y1, y2는 각각 사각형의 왼쪽, 오른쪽, 아래쪽, 위쪽 경계가 됩니다.사각형의 넓이 계산사각형의 넓이는 (x2 - x1)과 (y2 - y1)를 곱하여 구합니다.이 값은 좌표 배열에서 가장 큰 x좌표와 가장 작은 x좌표의 차이, 그리고 가장 큰 y좌표와 가장 작은 y좌표의 차이를 사용하여 사각형의 넓이를 계산하는 것입니다. 정답은 더보기 클릭더보기class Solution { public int solution(int[][] dots) { // 초기 값으로 최대값과 최소값을 설정 int x1 = Integer.MAX_V..
[백준] 스택 10828번 코드 힌트Stack 사용하기Stack은 LIFO(Last In, First Out) 구조로, 나중에 들어온 데이터가 먼저 나가는 방식입니다. 스택을 사용하면 데이터를 추가(push), 제거(pop), 확인(peek)할 수 있습니다.push 명령어 처리하기push 명령어가 입력되면, 스택에 새로운 값을 추가해야 합니다. 명령어에 따라 입력된 값을 스택에 넣습니다.top 명령어 처리하기top 명령어가 입력되면, 스택의 가장 위에 있는 값을 확인합니다. 스택이 비어 있지 않은 경우에만 이 명령어를 처리하며, 가장 위의 값을 반환합니다.size 명령어 처리하기size 명령어가 입력되면, 현재 스택에 저장된 요소의 개수를 반환합니다. 이 개수를 반환하여 출력합니다.empty 명령어 처리하기empty 명령어가 입력..
[백준] 별 찍기 - 3 (2440번) 코드 힌트간단한 반복문 사용하기주어진 숫자 n부터 시작해 1씩 감소하면서 반복문을 실행합니다.각 줄에 출력할 별(*)의 개수는 반복문의 현재 값에 해당합니다.String.repeat() 메서드 사용하기 혹은 for문 사용하기String.repeat(int count) 메서드는 문자열을 지정된 횟수만큼 반복하여 새로운 문자열을 반환합니다. 이 예제에서는 * 문자를 반복하여 별을 출력합니다.혹은 문자열 변수를 생성하여 += "*"를 i번만큼 추가하며 j문이 종료되었을 때 출력합니다.  정답은 더보기 클릭더보기import java.io.*;public class Main { public static void main(String[] args) throws NumberFormatException, IOEx..