본문 바로가기

전체 글

(435)
[프로그래머스] 공원 산책 코드 힌트현재 위치 찾기:공원 배열에서 'S'로 표시된 시작 위치를 찾습니다.이 위치가 로봇 강아지의 초기 위치가 됩니다.이 위치를 2차원 배열의 인덱스로 변환하여 저장합니다.방향 및 거리 처리:각 경로(route)는 방향과 이동 거리를 포함합니다.방향은 "N" (북쪽), "S" (남쪽), "E" (동쪽), "W" (서쪽)으로 주어지며, 이를 기준으로 로봇 강아지를 이동시킵니다.이동 거리는 해당 방향으로 몇 칸 이동해야 하는지를 나타내며, 이동 도중 장애물이 있으면 이동을 중단하고 다음 명령을 처리합니다.방향별 이동 처리:"N" (북쪽): 위쪽으로 이동하며, y 좌표를 감소시킵니다. 이동 도중 인덱스가 0보다 작아지거나, 장애물('X')을 만나면 이동을 중단합니다."S" (남쪽): 아래쪽으로 이동하며, ..
[OS] 운영체제란? 운영체제란?운영체제(Operating System, OS)는 컴퓨터를 실행하고 관리하는 핵심 소프트웨어로, 사용자가 컴퓨터를 효율적으로 사용할 수 있도록 돕습니다. 우리가 일반적으로 사용하는 프로그램들은 모두 운영체제의 제어 아래에서 실행되며, 운영체제는 이들 프로그램이 원활하게 동작할 수 있도록 관리합니다. 대표적인 운영체제로는 데스크탑 환경에서 사용되는 윈도우, macOS, 리눅스가 있으며, 모바일 환경에서는 안드로이드와 iOS가 있습니다. 운영체제는 다양한 기능을 제공하지만, 모든 운영체제가 공통적으로 수행하는 핵심 기능이 존재합니다. 이 핵심 기능을 담당하는 부분이 바로 커널입니다.  커널: 운영체제의 핵심커널은 운영체제의 중심부로, 컴퓨터의 모든 주요 자원을 관리하고 제어하는 역할을 합니다. 커..
[백준] 최소공배수 (1934번) 코드 힌트최소 공배수 계산:두 숫자의 최소 공배수(LCM)를 구하기 위해 먼저 최대 공약수(GCD)를 계산합니다.GCD를 이용하여 두 숫자의 LCM을 간단히 구할 수 있습니다.반복 처리:여러 쌍의 숫자에 대해 LCM을 계산해야 하므로, 입력된 쌍의 숫자에 대해 반복적으로 LCM을 계산하고 출력합니다.재귀를 이용한 GCD 계산:유클리드 알고리즘을 사용하여 GCD를 재귀적으로 계산합니다.이 방법은 두 숫자 중 하나가 0이 될 때까지 계속 나머지를 구하는 방식입니다. 정답은 더보기 클릭더보기import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws NumberFormatExcepti..
[백준] 카드2 (2164번) 코드 힌트입출력 최적화:대용량의 데이터를 빠르게 처리하기 위해 BufferedReader와 BufferedWriter를 사용하여 입력과 출력을 처리합니다. 이 방법은 효율적인 입출력 처리를 가능하게 합니다.큐 초기화:1부터 n까지의 숫자를 큐에 넣습니다. 큐는 순서대로 데이터를 처리하는 구조로, 여기서는 카드 게임의 순서를 모방합니다.카드 제거와 이동:큐의 크기가 1이 될 때까지 가장 앞의 카드를 제거한 후, 그 다음 카드를 다시 큐의 뒤에 추가하는 작업을 반복합니다. 이 과정은 마치 카드를 한 장씩 버리고 다음 카드를 다시 큐에 넣는 것과 같습니다.마지막 카드 출력:마지막으로 남은 카드가 최종 결과입니다. 이 값을 출력합니다. 정답은 더보기 클릭더보기import java.io.*;import java...
[프로그래머스] [PCCE 기출문제] 10번 / 데이터 분석 코드 힌트필터링:입력된 데이터 중에서 특정 조건을 만족하는 항목들만 선택합니다.예를 들어, 주어진 기준 값 이하인 항목들만 선택하여 새로운 리스트에 저장합니다.배열 변환:필터링된 데이터를 리스트에서 이차원 배열로 변환합니다.몇 개의 데이터가 들어올지 모르기 때문에 List를 사용합니다.정렬:정렬 기준에 따라 데이터를 정렬합니다.예를 들어, "날짜"나 "코드" 등을 기준으로 배열을 오름차순으로 정렬합니다.오름차순 : 1, 4, 6, 10, 46, 100 처럼 작은 숫자에서 큰 숫자로 정렬하는 것정렬 방법:배열의 요소들을 비교하여 올바른 위치에 삽입하는 방식으로 정렬합니다.이 과정에서 각 요소의 값을 비교해가며 데이터를 정리합니다.sort()로 하셔도 되지만 따로 메소드를 만들어서 정렬하셔도 좋습니다.  정..
[프로그래머스] 오픈채팅방 코드 힌트유저 정보 관리:사용자 ID와 닉네임을 관리하기 위해 HashMap을 사용합니다.이 맵은 각 사용자의 최신 닉네임을 저장하며, 나중에 메시지를 생성할 때 이를 사용하여 정확한 닉네임을 표시합니다.행동 기록 및 메시지 생성:사용자의 행동(Enter, Leave, Change)을 시간 순서대로 처리하여 각 행동에 맞는 메시지를 기록합니다.Enter와 Leave는 메시지를 생성하여 리스트에 추가하고, Change는 해당 ID의 닉네임만 업데이트합니다.닉네임 변경 처리:Change 동작이 발생할 때마다 HashMap에서 해당 사용자의 닉네임을 업데이트합니다.이 업데이트는 이전에 기록된 메시지의 닉네임에도 반영되기 때문에, 메시지 생성 시 올바른 닉네임이 사용됩니다.최종 메시지 배열 생성:모든 로그를 처..
[프로그래머스] 택배상자 코드 힌트순서 확인:1번 상자부터 시작하여 order 배열의 원하는 순서대로 상자를 트럭에 싣는 것이 목표입니다.상자를 순서대로 트럭에 실을 수 있는지 확인하며 진행합니다.스택 사용:만약 현재 상자를 바로 트럭에 실을 수 없을 경우, 스택을 사용하여 임시로 상자를 저장합니다.스택은 LIFO(Last In, First Out) 구조를 가지며, 가장 나중에 넣은 상자를 먼저 꺼낼 수 있습니다.스택과 비교:스택에 상자가 쌓인 상태에서, 현재 순서에 맞는 상자가 스택의 맨 위에 있다면, 스택에서 상자를 꺼내 트럭에 실습니다.만약 스택의 맨 위 상자가 현재 순서에 맞지 않으면, 상자를 더 이상 실을 수 없으므로 반복을 종료합니다.결과 반환:최종적으로 트럭에 실을 수 있는 최대 상자 개수를 계산하여 반환합니다.이를..
[알고리즘] 비트 연산자 정리 (Java 예제 포함) 논리 연산자논리 연산자는 false(0) 또는 true(1) 값을 다루는 연산자로, 기본적인 연산에는 AND, OR, XOR가 있습니다.1. AND 연산 (a AND b)정의: a와 b가 모두 1일 때만 1을 반환하며, 나머지 경우는 0을 반환합니다.진리표:ABA AND B0000101001112. OR 연산 (a OR b)정의: a와 b 중 하나라도 1일 때 1을 반환하며, 둘 다 0일 때만 0을 반환합니다.진리표:ABA OR B0000111011113. XOR 연산 (a XOR b)정의: a와 b 중 하나만 1일 때 1을 반환하며, 둘 다 같을 때는 0을 반환합니다.진리표:ABA XOR B000011101110 비트 연산자비트 연산자는 컴퓨터 내부에서 이루어지는 연산 중 하나로, AND, OR, XO..