본문 바로가기

전체 글364

동전교환(DFS) 설명여러 단위의 동전들이 주어졌을 때, 거스름돈을 가장 적은 수의 동전으로 교환하는 방법을 찾는 문제이다. 각 단위의 동전은 무한정 사용할 수 있다. 입력첫 번째 줄에 동전의 종류 개수 N(1두 번째 줄에는 N개의 동전 종류가 주어지고, 그다음 줄에 거슬러 줄 금액 M(1각 동전의 종류는 100원을 넘지 않는다.출력거슬러 줄 동전의 최소 개수를 출력한다.예시 입력31 2 515 예시 출력3 풀이 방법이 문제는 DFS(깊이 우선 탐색)를 이용하여 모든 가능한 경우의 수를 탐색한 후, 가장 적은 동전 개수를 찾아 해결할 수 있다. 큰 단위의 동전부터 사용하면서 탐색을 진행하고, 중간에 이미 답이 되는 경우보다 더 많은 동전을 사용하게 되는 경우는 탐색을 종료시켜 효율성을 높인다.package com.exam.. 2024. 10. 18.
합이 같은 부분집합(DFS : 아마존 인터뷰) 이 문제는 주어진 자연수 집합을 두 개의 부분집합으로 나누었을 때, 두 부분집합의 원소 합이 같은 경우가 존재하는지를 확인하는 문제이다. 각 부분집합은 서로소여야 하며, 두 부분집합을 합하면 원래 집합이 되어야 한다. 문제 설명주어진 N개의 자연수 집합을 두 개의 부분집합으로 나누었을 때, 두 부분집합의 합이 같으면 "YES"를 출력하고, 그렇지 않으면 "NO"를 출력하는 프로그램을 작성한다.예를 들어, {1, 3, 5, 6, 7, 10}이라는 집합이 주어졌다면, 이를 {1, 3, 5, 7}과 {6, 10}으로 나누면, 두 부분집합의 합이 각각 16이 되어 답은 "YES"가 된다.입력 설명첫 번째 줄에 자연수 N(1 ≤ N ≤ 10)이 주어진다.두 번째 줄에는 집합의 원소 N개가 주어진다. 각 원소는 중.. 2024. 10. 18.
경로탐색(DFS, 인접리스트) 이 문제는 방향 그래프에서 1번 정점에서 시작하여 N번 정점까지 가는 모든 경로의 수를 구하는 문제이다. 이 문제를 해결하기 위해 DFS(깊이 우선 탐색)과 인접 리스트를 사용한다. 이 방식은 그래프를 효율적으로 탐색하고, 경로의 수를 빠르게 구할 수 있다. 문제 해결 접근1. 그래프의 표현그래프는 정점과 간선으로 이루어진 자료 구조이다. 이 문제에서는 방향 그래프로, 정점에서 다른 정점으로 갈 수 있는 방향이 정해져 있다.그래프는 인접 리스트를 사용하여 표현한다. 이는 ArrayList를 이용해 각 정점에서 연결된 다른 정점들을 리스트 형태로 저장하는 방식이다.2. DFS(깊이 우선 탐색)DFS는 한 경로씩 끝까지 탐색하며, 마지막 정점(N번 정점)에 도달할 때마다 경로의 수를 카운트한다.각 경로를 탐.. 2024. 10. 18.
[BFS] 송아지 찾기 BFS(너비 우선 탐색)를 활용한 송아지 찾기 문제를 풀어본다. 이 문제는 수빈이가 동생 송아지를 찾기 위해 이동하는 최단 거리를 구하는 문제다. 수빈이는 현재 위치에서 1칸 앞, 1칸 뒤, 5칸 앞의 세 가지 이동 옵션을 가질 수 있다. 주어진 출발지에서 목적지까지 도달하는 가장 빠른 방법을 BFS로 찾는 과정이다. 문제 설명수빈이가 현재 있는 위치 s에서 동생 송아지가 있는 위치 e까지 최단 경로를 찾아야 한다.수빈이는 매번 1칸 앞으로, 1칸 뒤로, 또는 5칸 앞으로 이동할 수 있다.수빈이가 송아지에게 도달하는 최소 이동 횟수를 출력하는 문제이다.해결 방법이 문제는 최단 거리를 찾는 문제이므로 BFS를 사용하는 것이 적합하다. BFS는 각 단계에서 가능한 모든 경로를 탐색하면서 최단 경로를 찾기 때.. 2024. 10. 17.
[MVC] 서블릿(4) 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. HttpServletResponse - 기본 사용법HttpServletResponse란?HttpServletResponse는 클라이언트로부터의 요청에 응답을 보낼 때 사용되는 객체이다. 이 객체를 통해 상태 코드 설정, 헤더 추가, 쿠키 설정, 리다이렉트 처리 등의 기능을 사용할 수 있다. ResponseHeaderServlet 예제다음은 HttpServletResponse의 기본 사용법을 보여주는 서블릿 예제이다.package hello.servlet.basic.response;import jakarta.servlet.ServletException;import jakarta.servlet.annotation.WebServlet;impo.. 2024. 10. 15.
[MVC] 서블릿(3) 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. HTTP 요청 데이터 - 개요HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 방법을 알아보자. 주로 다음 3가지 방법을 사용한다. 1. GET - 쿼리 파라미터 /url?username=hello&age=20메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달한다.검색, 필터, 페이징 등의 요청에서 주로 사용하는 방식이다.2. POST - HTML Formcontent-type: application/x-www-form-urlencoded메시지 바디에 쿼리 파라미터 형식으로 데이터를 전달한다. 예를 들어 username=hello&age=20과 같은 형태이다.주로 회원 가입, 상품 주문 등의 HTML .. 2024. 10. 14.