반응형

전체 글 226

[백준] 17393 : 다이나믹롤러 [JAVA] 실버3

문제 풀이 설명 (summary)이분탐색 활용 문제 풀이 접근법기본적인 이진 탐색 방법 풀이 코드 (Code)import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { static int N,M; static long[] NList; static long[] MList; static StringBuilder sb = new StringBuilder(); public static void main(String[] args) throws IOException { Buffere..

[백준] 14002 : 가장긴증가하는부분수열4 [JAVA] 골드4

문제 풀이 설명 (summary)점점 증가하는 수열로 만드는데 가장 긴 수열을 찾아서, 길이와 그 수열을 출력하면 된다.DP 문제로 접근하게 되면, 현재 DP 인덱스에서 최적의 값을 구한다.구한 값으로 다음 인덱스에서 활용할 수 있게 해야한다. 문제 풀이 접근법for문을 통해 DP[i] 값을 구한다. 내부 for문을 통해서 0부터 i이전까지 돌면서 현재 값보다 작으면서, 나의 dp값보다 큰 값을 찾는다. 만약에 위 조건을 통과한다면, 현재 dp[i] 값에 설정하고 인덱스를 prev 배열에 기록반복해서 나아가면 목표하는 target 인덱스는 dp[target] 으로 구할 수 있다prev[target] 을 호출하면 이전 인덱스 위치를 찾을 수 있다. 찾은 prev[target] 값을 다시 target 인덱스..

[백준] 15988 : 123더하기3 [JAVA] 실버2

문제 풀이 설명 (summary)사용할 수 있는 수 확인 (1, 2, 3)DP 배열은 현재 인덱스에서 최대로 가질 수 있는 조합의 수 문제 풀이 접근법현재 인덱스로 조합을 만들 수 있는 수는 앞선 DP 값으로 구할 수 있음예를 들어 숫자 4를 만들 수 있는 방법은 수는숫자 1을 만들수 있는 방법의 수숫자 2를 만들수 있는 방법의 수숫자 3을 만들수 있는 방법의 수위 방법 3개를 통해서 만들 수 있다 우리가 가진 수는 1,2,3 이므로, 각각 필요한 수를 더해주면 4를 만들 수 있다. 따라서 dp[4] = dp[1] + dp[2] + dp[3] 이 된다. 단 유의사항은 % 1,000,000,009 되어 있으므로, 타입 범위를 주의할 것!! ㅎㅎ 풀이 코드 (Code)import java.io.Buffere..

[백준] 2302 : 극장좌석 [JAVA] 골드5

문제 풀이 설명 (summary)DP (동적 계획법, Dynamic Programming)VIP 좌석은 고정이다. 이 좌석을 기준으로 분리되는 개수별로 파악1 2 3 4 5 6 7 8 9 위와 같은 경우 각 개수로 만들수 있는 조합을 구한 후 곱해주면 된다. 문제 풀이 접근법최대 DP 크기를 지정한 후 DP별로 조합개수를 할당해둔다그리고 각 개수에 맞게 DP에서 값을 구해서 곱하면 끝-- 점화식 힌트 -- 1. 바로 전 조합을 사용하고 뒤에 숫자만 붙여준다.2. 전전 조합을 사용하고 뒤의 숫자 2개 위치를 바꿔준다. 풀이 코드 (Code)import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;imp..

[백준] 2156 : 포도주시식 [JAVA] 실버1

문제 풀이 설명 (summary)DP (동적 계획법, Dynamic Programming)점화식 찾기 (3연속 불가능 문제 풀이 접근법조건별로 구분해서 최대치 구하기 (핵심 key)case 1 : 현재 dp[i] 마시지 않을 때case 2 : 이전 인덱스 dp[i - 1] 마시지 않을 때case 3 : 전전 인덱스 dp[i - 2] 마시지 않을 때 이 3가지 케이스중에 가장 큰 값을 현재 dp[i] 로 지정다음 인덱스로 이동 (반복) 풀이 코드 (Code)import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main { static int[] wine; stati..

[기타] XML이란?

XML(eXtensible Markup Language)는 데이터를 구조화하고 저장하거나 전송하기 위해 설계된 마크업 언어입니다.현재는 Rest API + JSON 조합으로 보편화 되었지만, 과거에는 SOAP + XML 조합으로 많이 사용하였음 핵심 특징태그 기반 : 홍길동 직접 태그를 정의확장성 : 정해진 태그가 아니라 필요한 대로 새로운 태그를 만들 수 있음사람과 기계 모두 읽기 쉬움 : 사람도 이해할 수 있으면서, 기계도 파싱(해석)이 가능표준화된 규칙 : W3C(World Wide Web Consotium)가 표준을 관리주된 용도서버 간 데이터 교환프로그램 설정 파일문서 저장 포맷 (ex. MS Word, Excel 내부 파일)웹서비스 데이터 포맷 (특히 과거 SOAP 기반 통신) XML 코드 예..

[Spring] REST API가 무엇인가?

REST 아키텍처 스타일을 기반으로, HTTP 프로토콜을 이용하여 서버와 클라이언트 간에 데이터를 주고받기 위해 설계된 인터페이스 구성 요소자원(Resource) : 서버에 존재하는 데이터를 의미하며, 각각 고유한 URL로 식별된다.행위(HTTP Method) : 클라이언트가 자원에 대해 수행하려는 동작을 정의GET, POST, PUT, DELETE표현(Representation) : 자원의 상태를 전달하는 형태로, 주로 JSON, XML 등의 포맷으로 표현 REST API의 기본 원칙Uniform Interface (일관된 인터페이스)URL, HTTP 메소드 사용 규칙이 일관되어야 함Stateless (무상태성)서버는 각 요청 간에 클라이언트 상태를 저장하지 않습니다. (모두 요청은 독립적)Client..

IT 정보/Spring 2025.04.29

[프로그래머스] 389481 : 봉인된주문 [JAVA] Lv.3

문제 풀이 설명 (summary)금지된 목록을 모두 숫자로 변환하고 오름차순으로 정렬최대 금지 항목이 30만개 이므로 이분 탐색으로 정렬하여 현재 n값보다 작은 갯수가 몇개인지 파악하여 추가금지항목 갯수만큼 n에 추가하고, 추가값도 반복해서 카운팅하고최종 카운트를 문자열로 바꿔서 출력한다. 문제 풀이 접근법26진법을 사용한다. 알파벳 하나하나 숫자로 해시맵에 저장문자열을 숫자로 변환하는 메서드 활용숫자를 문자열로 변환하는 메서드 활용 풀이 코드 (Code)import java.util.Arrays;import java.util.HashMap;import java.util.Map;public class Main { public static void main(String[] args) { ..

[매일메일] HTTPS란 무엇인가?

[매일메일] HTTPS란 무엇인가? HTTPS,HTTP 우리가 URL 링크를 복사하면 따라 나오는 문자입니다. 이는 클라이언트와 서버 간 통신을 위한 통신 규약입니다. (규약 = 약속)HTTP와 HTTPS 의 차이점은 HTTP는 암호화되지 않은 평문 데이터를 전송하기 때문에 제3자가 정보를 조회할 수 있다는 위험이 있어서 HTTPS가 등장했습니다. 따라서 우리가 HTTP 주소로 링크를 이동하게되면 안전하지 않은 링크라고 경고가 뜨는걸 알 수 있습니다. HTTPS 적용하는 방법인증된 기관(Certificate Authorite, CA)에게 인증서를 받을 요청서버 도메인 (www.naver.com)서버의 공개키 (Public Key)CA는 다음을 수행해당 정보를 검토하고 인증서를 생성인증서에 전자서명을 추가..

[프로그래머스] 17680 : 캐시 [JAVA] Lv.2

[프로그래머스] 17680 : 캐시 [JAVA] Lv.2 1. 준비대소문자 구분하지 않으므로, 주어진값을 모두 소문자로 변경한 후 계산해야 한다. 그리고 casheSize가 0인 경우에는 하나도 저장할 수 없으니 cities 크기만큼 * 5 해주면 된다. 2. 캐시 입출력이 문제는 deque 를 사용하면 쉽게 풀 수 있다.ArrayDeque cache = new ArrayDeque();cache.contains(city) 문제 풀이 설명 (summary)Deque를 활용하여 cities 값을 하나씩 검증하여 추가한다.같다면, 카운트를 + 1 해준다. 이전의 같은 값을 삭제하고 새로 city값을 추가해준다같지 않다면, 카운트를 +5 하고 가장 먼저 추가한 값을 삭제하고, city값을 추가해준다. 만약에..

반응형