Banner

My Tech Blog (Java)

📑 1. 문제설명최단 경로를 보장하는 문제에서 너비 우선탐색을 한다. 너비 우선탐색을 큐로 구현해보자.너비 우선 탐색으로 모든 노드를 순회하는 함수 solution()을 작성하기시작노드는 매개변수 start로 주어진다. graph는 (출발 노드, 도착 노드) 쌍들이 들어 있는 리스트이다. 반환값은 그래프의 시작 노드부터 모든 노드를 너비 우산 탐색으로 진행한 순서대로 노드가 저장된 리스트이다. 제약 조건노드의 최대 개수는 100개이다.시작 노드부터 시작해서 모든 노드를 방문할 수 있는 경로가 항상 있다.그래프의 노드는 숫자이다.입출력 예graphstartnreturn[[1, 2], [1, 3], [2, 4], [2, 5], [3, 6], [3, 7], [4, 8], [5, 8], [6, 9]]19[1..
📑 1. 문제설명정수 N을 입력 받가 1부터 N까지의 숫자 중에서 합이 10이 되는 조합을 리스트로 반환하는 solution() 함수를 작성하세요. 제약조건백트래킹을 활용해야 합니다.숫자 조합은 오름차순으로 정렬되어야 한다.같은 숫자는 한 번만 선택할 수 있다.N은 1이상 10이하인 정수이다.입출력 예Nresult5[[1, 2, 3, 4], [1, 4, 5], [2, 3, 5]]2[]7[[1, 2, 3, 4], [1, 2, 7], [1, 3, 6], [1, 4, 5], [2, 3, 5], [3, 7], [4, 6]]💡 2. 풀이과정조합한 숫자의 합이 10이 되면 해당 조합을 결과 리스트에 추가하기조합한 숫자의 합이 10보다 크면 백트래킹(유망 함수 조건)이건 유망함수 조건만 잘 파악하면 쉽게 구현할 ..
📑 1. 문제설명깊이 우선 탐색으로 모든 그래프의 노드를 순회하는 함수 solution() 작성하기시작 노드는 start로 주어진다. graph는 [출발 노드, 도착 노드] 쌍들이 들어 있는 리스트이다.반환값은 그래프의 시작 노드부터 모든 노드를 깊이 우선 탐색으로 진행한 순서대로 노드가 저장된 리스트 제약조건노드의 최대 개수는 100개를 넘지 않습니다.시작 노드부터 시작해서 모든 노드를 방문할 수 있는 경로가 항상 있다.그래프의 노드는 문자열이다.입출력 예graphstartnreturn[['1', '2'], ['2', '3'], ['3', '4'], ['4', '5']]'1'5['1', '2', '3', '4', '5'][['1', '2'], ['1', '3'], ['2', '4'], ['2', '5..
· Java
package-info.java는 자바에서 패키지 단위의 문서화와 어노테이션을 관리하는 파일이다. @NonNullApi, @NonNullFields 같은 어노테이션을 붙여서 패키지 레벨의 null-safe 기본 정책을 정한다.혹은 해당 패키지에 대한 설명을 추가할 수 있다. 1. Javadoc 주석 작성클래스나 메서드에 Javadoc을 달 수 있듯이, 패키지 자체에도 설명을 붙이고 싶을 때, Javadoc 문서화를 위해 사용한다.예를 들어, 패키지에 속한 모든 클래스들의 공통 목적이나 설계 철학, 사용 방법 등을 정리할 수 있다./** * 이 패키지는 사용자 인증과 관련된 기능을 제공합니다. * - User 객체 관리 * - 로그인/로그아웃 기능 * - 세션 처리 */package com.example..
· Java
⚠️ 문제jdoodle에서 아래코드 실행 중 에러 발생static ArrayList[] graph; // 인접 리스트graph = new ArrayList[N + 1];Note : Main.java unchecked or unsafe operationsNote: Recompile with -Xlint: unchecked for details. 🧐 원인자바 제네릭이랑 배열을 함께 사용할 때 자주 나오는 경고라고 한다. 자바에서는 제네릭 배열 생성은 직접 불가하다. → 즉, `new ArrayList[N+1]`은 불가능 하기 때문에대신 제네릭을 빼고 그냥 Raw 타입 배열을 만들고 각 인덱스를 ArrayList로 초기화한다.이렇게 하면 컴파일러가 타입 안전성이 완전히 보장되지 않는다고 컴파일 에러를 띄..
📑 1. 문제설명https://school.programmers.co.kr/learn/courses/30/lessons/129211부터 입력받은 숫자 n 사이에 있느 소수의 개수 반환하는 함수 작성하기소수 : 1과 자기 자신으로만 나누어지는 수💡 2. 풀이과정boolean[] isPrime 배열 만들어서 각 수가 소수인지 아닌지 체크→ 보통 소수 판별하는 메서드나 배열은 isPrime으로 변수 명명하기처음에 2 이상 모든 수 소수라고 가정하고 시작하기→ 0, 1은 소수가 아니기 때문이다2 ~ 루트 n까지 돌면서 배수 제거하기최종적으로 true로 남아 있는 수들을 카운트하면 그게 소수 개수👨‍💻 3. 정답코드class Solution { public int solution(int n) { ..
📑 1. 문제설명https://school.programmers.co.kr/learn/courses/30/lessons/12930💡 2. 풀이과정내가 해결한 로직split(" ")로 s를 공백 기준으로 분리해서 String배열로 담음이렇게 하면 구분자인 공백은 제외하고 글자만 담김그래서 바깥 for문 실행 마다, 한 단어가 끝나면 뒤에 sb.append(" ")로 공백 추가단, 이렇게 하면 마지막 문자 뒤에도 공백이 붙음sb.deleteCharAt() 으로 마지막 공백 제거 첫번째시도class Solution { public String solution(String s) { // 먼저 얘를 공백 기준으로 분리해서 배열에 넣고 String[] str = s.split(" ..
📑 1. 문제설명https://school.programmers.co.kr/learn/courses/30/lessons/12982부서마다 신청한 금액이 담긴 배열 d그리고 예산 한도 budget이 주어진다.최대 몇 개 부서의 물품을 구매할 수 있는 지 리턴하는 문제💡 2. 풀이과정여기서 적은 금액부터 차례대로 지원해야 더 많은 부서를 커버할 수 있다.👨‍💻 3. 정답코드import java.util.*;class Solution { public int solution(int[] d, int budget) { int answer = 0; int sum = 0; Arrays.sort(d); for (int i = 0; i bud..
인절미였던것
'Java' 태그의 글 목록
상단으로