분류 전체보기 291

[네트워크] Application 7계층 - HTTPS (Hypertext Transfer Protocol Secure)

HTTPS HTTP vs HTTPS  먼저 HTTP (Hypertext Transfer Protocol) 는 OSI 7계층에서 가장 위 계층인 Application 7계층에서 사용되는 대표적인 프로토컬이다.  OSI 7계층에 대한 내용은 아래 글을 첨부한다. https://xoxoxoxox.tistory.com/298 [네트워크] OSI 7계층 모델OSI 7계층 모델 배경OSI 7계층 모델은 ISO 국제 표준화 기구에서 1984년 제정한 네트워크 표준 규격이다. 옛날에는 회사에서 각각의 컴퓨터들이 통신하는 자신만의 프로토컬을 가지고 있었기 때문xoxoxoxox.tistory.com 클라이언트와 서버가 통신을 하기 위해서는 어떻게 통신할 것인지 세계적인 규칙(프로토컬)을 만든 것이 HTTP이다. 따라서 사..

[백준 | Java Silver I] (#1912) 연속합

문제https://www.acmicpc.net/problem/1912접근완전 탐색으로 풀면 주어진 테스트 케이스 3개는 통과하지만 시간 초과가 떠서 실패하는 문제였고, dp를 통해 풀어야 했다.  💡DP적 접근각 위치에서 끝나는 최대 부분합을 저장한다. 현재 위치에서 끝나는 최대 부분합은 이전 위치에서 끝나는 최대 부분합에 현재 값을 더한 것과 현재 값 자체 중 큰 값이 된다. 전체 배열을 순회하며 각 위치에서의 최대 부분합을 갱신해서 전역 최대값을 구한다. DP 배열을 사용하여 dp[i]를 i번째 요소로 끝나는 최대 부분합으로 정의한다. 점화식을 나타내면 아래와 같다. dp[i]=max⁡(dp[i−1]+nums[i],nums[i]) 그리고 전역 최대값을 추적하는 변수 max를 사용하여, 최종적으로 최..

[백준 | Java Silver I] (#1932) 정수 삼각형

문제https://www.acmicpc.net/problem/1932접근 Top-down 방식을 선택해서 풀었다.주어진 삼각형을 위와 같이 이차원 배열에 저장해줬다.그리고 아래로 한칸씩 내려가면서 숫자 합을 dp 배열에 저장했다. 세번째 줄을 예시로 들면, 18 11 16 15 가 합이 되는데, 11과 16은 그 중에서 큰 값으로 dp 배열에 저장이 된다.그 결과 오른쪽 사진과 같이 저장된다. 이 계산을 n-1줄(인덱스 n-2)까지 반복하면 마지막 줄에 최종적인 합들이 저장되게 된다. 그럼 그 중에서 가장 큰 값을 출력하면 가장 큰 합을 구할 수 있다.  최종 코드package week11.baek.july19.baek;import java.io.BufferedReader;import java.io.IO..

[백준 | Java Silver I] (#1743) 게임을 만든 동준이

문제https://www.acmicpc.net/problem/2847접근그리디 알고리즘을 통해 하나씩 줄여나가면 됐던 문제이다.  최종 코드package week11.baek.july16;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class S2847 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.rea..

[백준 | Java Silver I] (#1743) 음식물 피하기

문제https://www.acmicpc.net/problem/1743접근대표적인 DFS 문제인데, 음식물의 길이를 구해야 했던 문제 처음에는 dfs의 depth로 음식물의 길이를 구하려고 했는데, 잘못된 접근이 이었다. # . . .. # # .# # . . 위와 같은 경우 (2,2)에서 재귀가 시작되면 depth는 (2,2), (2,3) 으로 가는 경우 2, (2,2),(2,3),(1,3) 으로 가는 경우 3 해서 최대 depth는 3이 된다.  따라서 이렇게는 음식물의 길이 4를 구할 수 없었다.   첫번째 제출 - 실패 : dfs의 depth로 길이를 구하려고 잘못 접근함package week11.baek.july16;import java.io.BufferedReader;import java.io...

[백준 | Java Bronze I ] (#2163) 초콜릿 자르기

문제https://www.acmicpc.net/problem/2163접근 예제 입력2 2 예제 출력3 7*5 가 있다고 하면,6번을 나눠서 7개의 1*5를 만들 것이고, 7개를 4번을 나눠서 1*1 35개로 만들 수 있다.  이것을 식으로 나타내면(N-1) + N * (M-1); 최종 코드package week11.baek.july16;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;public class B2163 { public static void main(String[] args) throws IOException { BufferedR..

[네트워크] DNS(Domain Name System)

DNS (Domain Name System)    먼저 사람을 어떻게 식별할까? 사람을 식별할 수 있는 식별자는 이름, 주민등록번호, 여권 번호 등 여러 개가 있을 수 있다. 사람들을 이름이 아닌 주민등록번호나 여권 번호로 부르게 되면 매우 불편 할 것이고, 우리는 이름을 통해서 사람을 식별한다. 반면, 컴퓨터는 주민등록번호로 식별하는 것이 더 편할 것이다.  위와 마찬가지로 인터넷 host나 router은 IP Address(32 bit)로 식별되지만, 사람들이 여기에 접속할 때 IP Address를 외우고 접근하기는 매우 힘들기 때문에 "도메인 주소"라는 이름을 부여한다.  그렇다면 도메인 주소와 IP 주소를 어떻게 mapping하게 될까? 이를 책임져 주는 것이 DNS (Domain Name Sys..

[백준 | Java Bronze II ] (#2903) 중앙 이동 알고리즘

문제https://www.acmicpc.net/problem/2903접근 알고리즘을 시작하면서 상근이는 정사각형을 이루는 점 4개를 고른다. 그 후에는 다음과 같은 과정을 거쳐서 지형을 만든다.정사각형의 각 변의 중앙에 점을 하나 추가한다.정사각형의 중심에 점을 하나 추가한다.초기 상태에서 위와 같은 과정을 한 번 거치면 총 4개의 정사각형이 새로 생긴다. 이와 같은 과정을 상근이가 만족할 때 까지 계속한다.  n=1 사각형이 1개 -> 4개 점 5*1개 추가 n=2사각형이 4개->16개점 5*4 - 4*1 (=16)개 추가 진짜.... 너무 어렵게 접근했다한 변의 점이 몇 개인지만 파악하면 쉽게 풀 수 있었는데! 초기상태 : 점 2개n=1 일 때는 점 2+1개n=2 일 때는  점 3+2개n=3일 때는 ..

[백준 | Java Silver II] (#1012) 유기농 배추

문제https://www.acmicpc.net/problem/1012접근 밭이 위처럼 있을 때, 배추흰지렁이는 배추끼리 인접해있는 곳을 지나갈 수 있다고 하니까, 1로 된 덩어리의 개수를 구하면 되는 대표적인 dfs/bfs 문제 였다.  최종코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { static boolean[][] visited; static int[][] map; static int[] dx = {-1, 0, 1, 0}; static int[] dy = {0, -1,..