전체 글 66

[Algorithm/Baekjoon] 파티 - 1238 (G3/JAVA)

📑문제링크 1238번: 파티 💻코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st.nextToken()); int M = Inte..

Algorithm/Baekjoon 2023.06.22

[CS/Network] TCP - 3 way handshake & 4 way handshake

TCP는 장치들 사이에 논리적인 접속을 성립하기 위하여 연결을 설정하여 신뢰성을 보장하는 연결형 서비스이다. State 정보 LISTEN : 포트가 열려있어서 연결을 기다리고 있는 상태 CLOSED : 포트가 닫힌 상태 SYS_SENT : 연결 요청한 상태 SYN_RECV : SYN 요청을 받고 상대방의 응답을 기다리는 중 ESTABLISHED : 포트 연결 상태 CLOSE_WAIT : Close를 받은 상태 LAST_WAIT : Close 호출 후 진입하는 상태 TIME_WAIT : Server로 부터 FIN을 수신하더라도 일정시간(default 240초)동안 세션을 남겨놓고 잉여 패킷을 기다리는 과정 Flag 정보 TCP Header에는 CONTROL BIT(플래그 비트, 64bit)가 존재하며, 각..

CS/Network 2023.06.22

[CS/Network] TCP/IP 4계층 모델

1. 계층 구조 IP(Internet Protocol)란? 패킷을 최대한 빨리 특정 목적지 주소로 보내는 프로토콜이다. 빨리 보내는게 목적이다. 패킷 전달 여부를 보증하지 않으며, 패킷을 보낸 순서와 받는 순서가 다르다. TCP(Transmission Control Protocol)란? 패킷을 정상적으로 받을 수 있도록 하는 프로토콜이다. 꼼꼼하게 보내는게 목적이기 때문에, IP 보다 패킷 전송 속도는 느리다. 패킷 전달 여부를 보증하고, 패킷을 송신 순서대로 받게 해준다. 목적지에 도착한 패킷들을 순서대로 정렬하고, 손상되거나 손실된 패킷이 있다면, 출발지에 재요청하는 방식으로 진행한다. TCP/IP란? 두 가지 프로토콜 방식을 조합하여 인터넷 통신하는 것입니다. 송신자가 수신자에게 IP를 이용하여 최..

CS/Network 2023.06.22

[Algorithm/Baekjoon] 겹치는 건 싫어 - 20922 (S1/JAVA)

📑문제링크 20922번: 겹치는 건 싫어 💻코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int n = Integer.parseInt(st.nextT..

Algorithm/Baekjoon 2023.06.21

[CS/Network] 네트워크 기초

네트워크란 노드(서버, 라우터, 스위치 등의 네트워크 장치)와 링크가 서로 연결되어 있으며 리소스를 공유하는 집합이다. 1. 처리량과 지연 시간 처리량(throughput) 링크 내에서 성공적으로 전달된 데이터의 양을 말하며 보통 얼만큼의 트랙픽을 처리했는가를 나타낸다. 단위로 bps(bits per second)를 사용한다. 사용자들이 많이 접속할 때마다 커지는 트래픽, 네트워크 장치 간의 대역폭, 네트워크 중간에 발생하는 에러, 장치의 하드웨어 스펙에 영향을 받는다. 대역폭 : 주어진 시간 동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수 지연시간(latency) 요청이 처리되는 시간을 말하며 어떤 메시지가 두 장치 사이를 왕복하는데 걸린 시간이다. 매체 타입(유선, 무선), 패킷 크기, 라우터..

CS/Network 2023.06.20

[Algorithm/Programmers] 콜라 문제 - 132267 (L1/JAVA)

📑문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💻코드 class Solution { public int solution(int a, int b, int n) { int answer = 0; while(n >= a){ // 빈병 n개를 가져가서 받은 콜라의 수 answer += (n / a) * b; // 남은 빈병의 수 n = (n / a) * b + n % a; } return answer; } } ⏳회고 남은 빈병의 수를 먼저 계산하고 새로 받는 콜라의 수를 계산해서 틀렸었다. 주말 지나고 다시 난이도 있는 문제를 풀어야겠다. 피곤해도 차분..

[Algorithm/Programmers] 과일 장수 - 135808 (L1/JAVA)

📑문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💻코드 import java.util.Arrays; import java.util.Collections; class Solution { public int solution(int k, int m, int[] score) { int answer = 0; // 방법1. 내림차순으로 정렬 // primitive Type을 Wrapper클래스로 박싱 Integer[] tmp = Arrays.stream(score).boxed().toArray(Integer[]::new); Arrays.sort(tmp,Co..

[CS/Network] OSI 7계층

1. OSI 7계층 이란? 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말하며, 국제표준화기구(ISO, International Organization for Standardization)에서 네트워크 간의 호환을 위해 OSI 7계층이라는 표준 네트워크 모델을 만들었다. 2. OSI 7계층이 등장한 이유 통신이 일어나는 과정을 단계별로 파악하기 위함 통신 과정 중에 특정한 곳에 이상이 생길 경우에 다른 단계의 장비 및 소프트웨어 등을 건드리지 않고 통신 장애를 일으킨 단계에서 해결하기 위함 3. OSI 7계층 구조 1계층 - 물리 계층 (Physical Layer) 주로 전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송 단지 데이터를 전달만 할 뿐 전송하려는(또는 받으려는..

CS/Network 2023.06.15

[Algorithm/Programmers] 로또의 최고 순위와 최저 순위 - 77484 (L1/JAVA)

📑문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💻코드 class Solution { public int[] solution(int[] lottos, int[] win_nums) { int[] answer = new int[2]; int win_nums_counts = 0;//일치하는 번호의 수 int lottos_zero_counts = 0;//로또에서 알아볼 수 없는 번호의 수 for(int i = 0; i < 6; i++) { if(lottos[i] == 0){ lottos_zero_counts++; continue; } for(int j ..