분류 전체보기 140

[백준 / Java] 11501 주식

문제https://www.acmicpc.net/problem/11501 문제 개요홍준이는 미래의 주식 가격을 정확히 예측할 수 있지만, 언제 어떤 방식으로 매매를 해야 최대 이익을 얻을지는 모른다.매일 다음 세 가지 행동 중 하나를 할 수 있다.주식을 하나 산다가지고 있는 주식을 원하는 만큼 판다아무것도 하지 않는다주어진 날 별 주식 가격을 보고, 최대 이익을 계산하는 문제이다. 접근 방법이 문제는 뒤에서부터 탐색하는 것이 핵심이다.미래의 주가를 알기 때문에, "앞으로 가장 비싼 날"을 기준으로 현재 주가를 판단할 수 있다.뒤에서부터 탐색하면서, 지금까지 본 주가 중 가장 높은 가격(max)을 기록한다.현재 주가가 max보다 작으면, 지금 매수한 후 max 가격에 판매한다고 가정해 이익을 계산한다.주가..

문제/백준 01:54:48

[Java] System.in은 한 번만 선언해야 할까?

1. Java에서 데이터를 입력받을 때 사용하는 'System.in' 이게 뭘까? System.in은 "표준 입력 스트림"을 의미"표준 입력"이란?보통 키보드에서 사용자가 입력하는 데이터"스트림(Stream)"이란?데이터가 한 방향으로 흘러가는 통로를 의미즉, System.in은 키보드로 입력한 데이터를 '한 방향'으로 읽을 수 있게 하는 통로 🧠 쉽게 비유해보자System.in = 수도관에 흐르는 물줄기물줄기는 계속 한 방향으로 흐른다. (거슬러 올라갈 수 없음)한 번 지나간 물은 다시 읽을 수 없다.물줄기에 컵(BufferedReader, Scanner 등)을 대서 물(데이터)을 받아오는 것. 📚 System.in의 구조타입: InputStream데이터 단위: Byte(바이트)방향: 읽기 전용(F..

cs/Java 2025.04.29

[Java] JVM, JRE, JDK

🧩 1. JVM (Java Virtual Machine) — Java 실행의 핵심📌 JVM이란?JVM은 Java 프로그램이 실행되는 가상의 컴퓨터입니다.개발자가 작성한 .java 소스 파일은 javac 컴파일러를 통해 바이트코드(.class)로 변환되며, 이 바이트코드는 JVM이 실행합니다.✅ JVM의 역할바이트코드 실행 (실제 OS에서 동작하도록 변환)메모리 관리 (Heap, Stack, Method Area)Garbage Collection (자동 메모리 회수)예외 처리, 멀티스레딩 지원🧠 JVM 내부 구조[ JVM ] ├── Class Loader: .class 파일을 로드 ├── Execution Engine: 명령어 실행 (JIT 컴파일 포함) ├── Memory Area │ ├── ..

cs 2025.04.24

[백준 / Java] 15683 감시

문제https://www.acmicpc.net/problem/15683 문제 개요 이문제는 다양한 종류의 CCTV를 이용해 사무실 공간 내의 사각지대(감시되지 않는 영역)를 최소화하는 시뮬레이션 문제입니다.각 CCTV는 감시 가능한 방향이 정해져 있으며, 회전을 통해 방향을 설정할 수 있습니다. CCTV는 벽을 넘을 수 없지만 다른 CCTV는 통과할 수 있으며, 모든 CCTV의 방향을 적절히 정해 전체 사무실에서 감시되지 않는 빈 칸(0)의 개수를 최소화하는 것이 목표입니다. 접근 방법문제 분석 및 모델링사무실은 2차원 배열 map로 표현됩니다.CCTV는 종류(1~5번)에 따라 감시할 수 있는 방향이 다르며, 이에 따라 각각 가능한 방향 조합(monitor)을 미리 정의해 두었습니다.벽(6)은 감시를 막..

[프로그래머스 / Java] 완전범죄

문제https://school.programmers.co.kr/learn/courses/30/lessons/389480 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요A도둑과 B도둑은 협력하여 모든 물건을 훔치려 합니다. 하지만 물건을 훔칠 때마다 각 도둑에게 흔적이 남으며, 이 흔적이 기준 이상으로 누적되면 경찰에 붙잡히게 됩니다.A가 훔치면 info[i][0]만큼 A의 흔적이 쌓인다.B가 훔치면 info[i][1]만큼 B의 흔적이 쌓인다.목표는 모든 물건을 도둑질하되, A와 B 모두 경찰에 붙잡히지 않도록 하면서 A의 흔적 합계를 최소화하는 것입니다.  접근 방법이 문제는 각 물건마다 A..

[프로그래머스 / Java] 다단계 칫솔 판매

문제https://school.programmers.co.kr/learn/courses/30/lessons/77486 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요민호는 다단계 방식으로 칫솔을 판매하는 조직을 운영하고 있습니다. 각 판매원이 칫솔을 판매하면, 발생한 이익이 추천인 관계를 따라 위로 분배되는 구조입니다. 이때 이익은 아래와 같은 규칙에 따라 분배됩니다.칫솔 한 개를 판매하면 100원의 이익이 발생합니다.이익의 10%는 추천인에게 전달되고, 나머지 90%는 본인이 가집니다.이 추천인은 다시 받은 금액의 10%를 자신의 추천인에게 전달합니다.이 과정은 분배 금액이 1원 미만이 될..

[프로그래머스 / Java] 부대복귀

문제https://school.programmers.co.kr/learn/courses/30/lessons/132266?language=java 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요 강철부대의 부대원들이 여러 지역에 흩어져 특수 임무를 수행하고 있으며, 각 부대원은 주어진 지도 정보를 활용해 부대로 복귀해야 합니다. 각 지역은 번호로 구분되며, 두 지역을 연결하는 길을 통과하는 데 걸리는 시간은 모두 1로 동일합니다. 하지만 임무가 끝난 후 일부 경로가 사라져 특정 지역에서는 부대로 돌아올 수 없는 경우도 발생할 수 있습니다. 주어진 지역 정보와 길 정보를 바탕으로, 각 부대원이 ..

[프로그래머스 / Java] 비밀 코드 해독

https://school.programmers.co.kr/learn/courses/30/lessons/388352 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요비밀 조직의 보안 시스템을 해독하기 위해, 1부터 nnn까지의 숫자 중 서로 다른 5개 숫자로 이루어진 비밀 코드를 찾아야 합니다. m번의 시도를 할 수 있으며, 각 시도마다 입력한 5개의 숫자와 비밀 코드 간의 일치하는 숫자의 개수를 확인할 수 있습니다. 주어진 m번의 시도 결과를 바탕으로, 가능한 비밀 코드 조합의 개수를 구하는 문제입니다.  문제 접근 방법모든 가능한 5개 숫자의 조합을 생성1부터 n까지의 숫자 중 5개를 선택..

[프로그래머스 / Java] 유연근무제

https://school.programmers.co.kr/learn/courses/30/lessons/388351 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요직원들이 설정한 출근 희망 시각과 실제 출근 시각을 비교하여, 정해진 기간 동안 지각 없이 출근한 직원의 수를 구하는 문제입니다.직원은 1주일 동안 출근 희망 시각 + 10분 이내에 출근해야 합니다.주말(토요일, 일요일)은 이벤트에 영향을 주지 않습니다.출근 시각은 HHMM 형식의 정수로 주어지며, 이를 시간과 분 단위로 변환하여 비교해야 합니다.주어진 시작 요일(startday)에 따라 출근 기록을 주중과 주말로 구분하여 검사해야..

[프로그래머스 / Java] 지게차와 크레인

문제https://school.programmers.co.kr/learn/courses/30/lessons/388353 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요A 회사의 물류 창고에는 알파벳 대문자로 구분된 컨테이너가 세로 n 줄, 가로 m 줄로 총 n x m개가 놓여 있습니다. 특정 컨테이너 출고 요청이 들어오면 지게차 또는 크레인을 사용해 출고합니다.지게차 사용 (알파벳 1개 요청): 창고 외부와 연결된 컨테이너만 출고 가능크레인 사용 (알파벳 2개 요청): 해당 종류의 모든 컨테이너 출고모든 요청을 수행한 후 남은 컨테이너 개수를 구하는 것이 목표입니다. 접근 방법입력 데이터 저..