목록분류 전체보기 (95)
in.add()
OSI 7 계층 OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. 각 계층은 하위 계층의 기능을 이용하고, 상위 계층에게 기능을 제공한다. 계층을 나눈 이유는 표준을 정하고 장애 발생 시 어느 구간에서 발생했는지를 보다 명확하게 알기 위함이다. 아래로 내려갈수록 Protocol Header가 추가되어 계층 정보(TCP, IP, MAC 등)를 덧붙인다. 우리가 이메일을 보낸다고 가정할때 처음 응용계층에서 헤더를 붙여 하위 계층으로 넘겨준다. 표현 계층은 응용계층에서 내려온 헤더와 이메일 데이터를 하나의 데이터로 간주하게 된다. 그래서 다시 자신의 헤더를 덧붙인다. 이런 과정은 Encapsulation이라고 한다. 이런 식으로 물리계층까지 내려오게 되면 그때부터 0과 1의 이..
문제 링크 : https://www.acmicpc.net/problem/3085 3085번: 사탕 게임 예제 3의 경우 4번 행의 Y와 C를 바꾸면 사탕 네 개를 먹을 수 있다. www.acmicpc.net 문제 해결 방법 완전 탐색으로 오른쪽 사탕과 바꿨을 때, 아래 사탕과 바꿨을 때 최대 연속된 개수를 구하는 방법으로 구현했다. import java.util.Scanner; public class Main { static char[][] candies; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); candies = new char[N][N]; sc.nextLine();..
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 문제 해결 방법 몸무게 배열을 정렬한 후, 가장 가벼운 사람부터 보면서 무게 제한을 넘지 않을 때까지 무거운 사람들을 더하도록 구현했다. import java.util.*; class Solution { public int solution(int[] people, int limit) { int answer = 0; int..
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/72412 = score) cnt++; } answer[i] = cnt; } return answer; } public void dfs(int cnt, String str, String[] infos) { if(cnt == 4) { int score = Integer.parseInt(infos[4]); if(!map.containsKey(str)) { ArrayList list = new ArrayList(); list.add(score); map.put(str, list); } else map.get(str).add(score); return; } dfs(cnt + 1, str + infos[cnt..
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 문제 해결 방법 조합을 이용했다. HashMap에 를 저장해뒀고, 조합이 나온 수가 max 값 이라면 정답 배열에 추가했다. import java.util.*; class Solution { static HashMap[] setByCourse; // course 갯수 별로 set 저장할 hashmap 배열 static int N; // 현재 cour..
둘 다 HTTP 프로토콜을 이용해서 서버에 무엇인가를 요청할 때 사용하는 방식이다. 하지만 둘의 특징을 제대로 이해하여 기술의 목적에 맞게 알맞은 용도에 사용해야한다. GET 방식 서버로부터 정보 조회하기 위하여 설계된 메소드입니다. Select의 성향을 가지고 있다. 서버에서 어떤 데이터를 가지고 와서 보여주는 용도이지 서버의 값이나 상태를 바꾸지는 않는다. 요청을 전송할 때 필요한 데이터를 Body에 담지 않고, URL의 끝에 쿼리스트링을 통해 전송한다. 전송하는 길이에 제한이 있다. 동일한 요청을 여러 번 수행하더라도 동일한 응답이 와야한다. POST 방식 정보 생성/변경하기 위해 설계된 메소드입니다. 서버의 값이나 상태를 바꾸기 위해서 사용한다. 요청을 전송할 때 Body에 담아서 전송한다. HT..
문제 링크 : https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 문제 해결 방법 bfs로 구현했다. 입력을 받으면서 map배열의 아기 상어의 초기 위치를 0으로 바꿔주는 것을 놓쳐서 오래 걸렸다.. import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Main { static int N, fishX, fishY, minDist, ..
HTTP 웹 서버와 클라이언트 간의 문서를 교환하기 위한 통신 규약. 웹에서만 사용하는 프로토콜로 TCP/IP 기반으로 서버와 클라이언트 간의 요청과 응답을 전송한다. HTTP 특징 TCP 기반의 통신 방식 비연결 지향 브라우저를 통해 사용자의 요청으로 서버와 접속하여 요청에 대한 응답의 데이터를 전송 후, 연결을 종료한다. 간단하기 때문에 자원이 적게드는 장점이 있다. 하지만, 연결이 지속적이지 않기 때문에 사용자와 연결 종료 후 추가적인 요청 시 어떤 사용자의 요청인지 모른다는 점이 존재한다. 즉, 여러 사용자가 요청할 시 각각의 사용자 요청을 구분할 수 없어서 제대로 된 응답 데이터를 전송할 수 없다는 단점이 있다. 해결 방법으로는 쿠키, 세션, 히든 폼 필드 등이 있다. 단방향성 사용자의 요청 한..