본문 바로가기

분류 전체보기33

[BOJ] 2108 통계학 (C++) https://www.acmicpc.net/problem/2108 reviewN개의 숫자를 입력받아서 산술평균, 중앙값, 최빈값, 범위를 출력하는 문제이다. 1. 산술평균은 전체합을 N으로 나눈 값이다. 소수점 첫째 자리에서 반올림해야 하므로 round 함수를 사용했다. -0.333333 같은 수는 첫째 자리에서 반올림하면 -0으로 출력될 수 있는 점을 주의해야 한다. 2. 중앙값은 라이브러리의 sort함수를 이용하여 쉽게 구할 수 있었다. 3. 최빈값이 여러 개 있을 경우에 두 번째로 작은 값을 출력해야하는 문제를 가장 해결하기 어려웠다.정수의 범위가 -4000~4000인 점을 고려하여 8001 크기의 count 배열을 만들었고, 수를 입력받을 때 해당 배열의 값을 증가시키도록 하였다. 첫 번째 .. 2025. 5. 25.
[BOJ] 25206 너의 평점은 (C++) https://www.acmicpc.net/problem/25206 review과목명, 학점, 등급을 입력받아 등급을 점수로 변환해주고, 전공과목별 (학점 × 과목평점)의 합을 학점의 총합으로 나눈 값을 계산해주면 되기 때문에 비교적 간단한 문제였다. C++에서는 문자열의 switch문이 동작하지 않기 때문에 if-else 문을 이용했다. 처음에 등급이 P인 과목은 계산에서 제외해야한다는 점을 고려하지 않고 코드를 작성했다가 예시 문제의 값과 다르게 나왔었다. 등급을 점수로 변환해주는 if-else문을 P가 아닌 경우에만 돌아가도록 조건문으로 감싸주어서 해결했다. C++ code#include #include using namespace std;int main(){ string subject[.. 2025. 5. 22.
comnet-06 Chapter 03. Transport layer(1) Transport layer servicesTransport Layer는 서로 다른 호스트(컴퓨터)에서 실행 중인 애플리케이션 프로세스 간에 논리적 통신을 제공한다. 송신자(Sender)는 애플리케이션 메시지를 세그먼트로 쪼개서 네트워크 계층으로 전달한다. 수신자(Receiver)는 받은 세그먼트를 다시 조립하여 원래 메시지로 복원하여 애플리케이션 계층에 전달한다. Sender응용 계층(application layer)에서 메시지를 받는다.ex) 웹 브라우저가 보낸 HTTP 요청세그먼트의 헤더 필드 값(포트 번호 등)을 결정한다.헤더와 데이터를 결합하여 세그먼트(segment)를 생성한다.(encapsulation)세그먼트를 네트워크 계층(IP)에.. 2025. 4. 30.
comnet-05 Chapter 2. Application Layer(3)- DNS, P2P DNS: Domain Name SystemDNS(Domain Name System)이란?사람들이 사용하는 이름을 컴퓨터가 이해할 수 있는 IP 주소로 변환해 주는 시스템이다.사람에게도 이름, 학번 등 여러 가지 identifier가 있듯이, 인터넷 호스트도 IP 주소, 도메인 이름 같은 identifier을 가진다. DNS는 많은 name server가 계층적으로 연결되어 있는 분산 데이터베이스(distributed database) 방식이며, 호스트와 name server가 서로 통신하여 이름을 해석하는 application-layer protocol을 사용한다. DNS의 주요기능hostname을 IP 주소로 변환해 준다.h.. 2025. 4. 30.
comnet-04 security Chapter 8. Security in Computer Networks network security네트워크 보안이란?네트워크 상에서 데이터가 안전하고 신뢰할 수 있도록 보호하는 것Confidentiality(기밀성): 오직 송신자와 수신자만 메시지 내용을 이해할 수 있어야 한다. (메시지를 암호화/복호화)Authentication(인증): 송신자와 수신자가 서로의 신원을 확인(검증)하는 과정Message Integrity(무결성): 메시지가 전송 중 변경되지 않았음을 보장하는 것, 변조(조작) 여부 탐지Access and Availability(가용성): 네트워크 서비스가 항상 접근 가능하고 사용할 수 있어야 한다는 것 Alice와 Bob은 보안 통신을 원하고, Trudy는 공격자로, 메시지를 가로.. 2025. 4. 30.
comnet-03 sockprog Chapter 2. socket programming socket programming 목표: 소켓을 사용해서 클라이언트/서버 애플리케이션을 만드는 방법을 배우는 것 socket(소켓)이란?소켓은 애플리케이션 프로세스와 end-to-end 전송 프로토콜 사이의 문 역할을 한다. 즉, 네트워크를 통해 데이터를 보내고 받는 프로그래밍 인터페이스(API)라고 생각하면 된다. 소켓은 사용하는 전송 서비스에 따라 두 가지로 나뉜다. 1. UDPunreliable datagram빠르지만, 순서 보장이 없고 데이터 유실 가능성이 있다. ex) 실시간 영상 스트리밍 datagram 한 덩어리의 데이터를 한 번에 보내는 방식 메시지 단위로 보내기 때문에 패킷 하나하나가 독립적이다.순서도 없고, 전달 여부도 확인하지 않는.. 2025. 4. 30.