Backend (18) 썸네일형 리스트형 [프로그래머스] Java - Level4 | 동굴 탐험 | PS일지 문제 정보플랫폼프로그래머스문제동굴 탐험난이도Level4언어Java문제 링크 문제 바로가기 → 1. 문제 요약n개의 방으로 이루어진 지하 동굴 탐험하자. 각각의 방은 0 ~ n-1까지 번호가 있다.입구는 무조건 0부터.각 방향은 양방향 통행 가능. (임의의 두 방 사이 이동 불가능한 경우 없음) 탐험 계획1. 모든 방 적어도 한번 방문2. 특정 방을 방문 전에 사전에 방문해야 할 방이 있음 규칙이 있음 2-1. 예를들어, A방 방문 전 B방 무조건 먼저 방문2-2. B방 처럼 A방 방문전에 반드시 먼저 방문해야할 방은 없거나 또는 1개.2-3. 서로 다른 두 개 이상에 대해 먼저 방문해야할 방이 같은 경우가 없음2-4. 어떤 방이 먼저 방문해야 하는 방이면서 동시에 나중에 방문해야 되는 방 없음. 이게 .. [Java] SWEA-D5. 1247. 최적 경로 문제 정보```플랫폼SW Expert Academy문제1247. 최적 경로난이도D5언어Java문제 링크 문제 바로가기 → ```1. 문제 요약김대리가 회사에 출발해 냉장고 배달을 한다.N명의 고객 모두 방문한 후 자신의 집으로 가야 한다.두 위치 사이의 거리(x1, y1) , (x2, y2)가 주어졌을때의 거리는 |x1-x2| + |y1-y2|로 구할 수 있습니다.회사 -> N명 -> 집 이렇게 모든 고객을 방문해야 합니다. 2. 아이디어N이 작아서, 모든 경우를 탐색하는 재귀를 활용해도 좋을 것 같다.반복적으로 recursive함수를 호출할 때 1-2-3 -> 1-2-1 이렇게 이전에 방문한 고객의 집을 재방문하지 말아야 한다!-> 중복x-> visited[] 배열 활용해서 중복 탐색 방문 방지!.. [Java] Generic 1편: Type Erasure와 javac의 동작 원리 Java 개발을 하다 보면 List과 같은 제네릭(Generic)을 숨 쉬듯이 사용하게 됩니다. 하지만 “왜 런타임에는 제네릭 타입 정보가 남아있지 않을까?” 혹은 “왜 instanceof List은 컴파일 에러가 날까?”라는 의문을 가져본 적이 있으신가요? 이 글에서는 Java가 제네릭을 어떻게 처리하는지,그리고 컴파일러와 JVM의 역할이 어떻게 나뉘는지 심도 있게 파헤쳐 봅니다.제네릭이 없던 시절의 Java와 JSR-14Java 5에 제네릭이 도입되기 전, 컬렉션을 다루는 코드는 런타임 에러의 지뢰밭이었습니다. 제네릭 도입을 제안했던 JSR-14 Proposal의 문구를 보면 당시의 고민이 잘 드러납니다. "Many programs and libraries written in Java are intr.. [SWEA] 6871. 삼삼 트리플 게임 문제 정보```플랫폼SWEA문제6781. 삼삼 트리플 게임난이도D3언어Java문제 링크 문제 바로가기 → ```카드는 숫자와 컬러로 구성되어 있다.9장의 카드를 받으면 3개의 세트가 될 수 있는지를 구하는 문제이다. 하나의 세트(카드 3장)를 구성하는데 조건이 있다.같은 카드 색이어야 한다.숫자가 모두 같거나, 연속적이어야 한다.이때 9,1,2 같은 경우는 될 수 없다숫자, 컬러가 같은 카드는 4장 이하로만 주어진다.카드 1 2 3 R R R 이 경우는 1개의 세트가 된다. 승리 조건을 만족하도록 3개의 세트를 구성할 수 있는지 판별해라..2. 핵심 아이디어카드에는 순서가 없다.카드를 색깔별로 빈도로 수치화하고, 3장을 꺼내야 한다.모든 경우를 파악해도 좋지만, 특정 컬러의 카드가 1, 2장만 있으면 .. [프로그래머스] Java - Level 1 | 다트게임 | PS일지 Problem Solving```[프로그래머스] 다트 게임 — Java문제를 해결하며 사용한 핵심 아이디어와 주의할 점을 정리합니다.```문제 정보```플랫폼프로그래머스문제다트 게임난이도Level 1언어Java문제 링크 문제 바로가기 → ```1. 문제 요약다트를 3번 던진 결과를 짜야함. 문제 조건에 따라서 여러 이벤트가 있음.2. 핵심 아이디어핵심```dartResult를 순회하며 그때 그때 처리하자O(N)```문제 봤을때 일단.. 다트 점수가 1~10까지 있어서, 점수가 두 자리인 경우도 있는게 까다로웠습니다.정규표현식을 사용하면 좀 쉽게 토큰들을 뺄 수 있지만.. 정규 표현식을 잘 다루지 못하기 때문에 패스! -> 숫자 이후에는 무저건 "SDT" 중 하나의 문자열이 들어옵니다.이를 이용해서, da.. [프로그래머스] Java / Level 1 - 붕대감기 | PS일지 https://school.programmers.co.kr/learn/courses/30/lessons/250137 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 어려운 점은 없었다. 이번 문제는 입력 범위가 작아서 마지막 공격시간까지 1초씩 순회하며, 시간의 흐름에 따라 공격과 회복을 처리했다. (이 문제는 아니지만 이런 유형의 문제가 만약에 마지막 공격 시간이 매우 크거나 매초 추가적인 반복문까지 수행하는 구조람녀 시간 초과가 날 수도 있다.) 구현하면서 한 가지 조심해야 할 점은매번 시간이 지나서 체력을 매 초마다 증가시킬 때 health를 넘지 않아야 한다는 것이다.public class 붕대감기 {.. [Inside Java] 08. 마무리.. Java 실행 구조 핵심 위키! 앞선 1장부터 7장까지 다룬 내용을 다시 찾기 쉽도록 핵심 개념만 두줄로 압축했습니다.자세한 동작 원리와 예시는 각 챕터에서 확인하고, 이 글에서는 개념의 연결 관계만 빠르게 정리합니다. 이번 시리즈를 정리하면서 Java는 단순히 컴파일만 하는 언어가 아니라, 인터프리터와 JIT 컴파일러를 함께 활용해 실행 성능을 높이는 구조라는 점이 특히 인상 깊었습니다.또한 클래스 로딩부터 메모리 구조, 동적 디스패치, JIT 최적화까지 각각의 개념이 독립적으로 존재하는 것이 아니라 하나의 실행 흐름으로 연결되어 있다는 점도 새롭게 이해할 수 있었습니다. 예전에 Young Generation, Old Generation, Minor GC, Major GC 등 GC의 동작 방식도 한 번 공부했던 기억이 있는데, 이번.. [Inside Java] 07. interface는 JVM 메모리에서 어떻게 관리될까? — default 메서드와 enum 객체까지!! 이전 [Inside Java] 시리즈에서는 class로 만든 객체와 메서드 호출이 JVM 안에서 어떻게 연결되는지 살펴봤습니다.그런데 Java에는 class만 있는 것이 아니죠.....interface Animal { void speak();}enum Direction { LEFT, RIGHT}@interface Marker {} 셋은 문법적으로 서로 완전히 달라 보입니다. 그런데 컴파일하고 나면 모두 .class 파일이 만들어집니다.Animal.java → Animal.classDirection.java → Direction.classMarker.java → Marker.class 여기서 한 가지 궁금한 점이 생겼습니다.이름은 모두 .class인데, 그렇다면 전부 일반 .. 이전 1 2 3 다음