공부하고 기록하는, 경제학과 출신 개발자의 노트

분류 전체보기 549

[Edwith] 통신의 기초 5. 통신보안

https://www.edwith.org/tel-ewha-course/joinLectures/13274 통신의 기초 강좌소개 : edwith - 도인실 www.edwith.org 5. 통신보안 정보통신보안 정보를 수집 및 가공하고 저장한 후 송수신하는 과정에서 발생하는 정보의 불법훼손 / 변조 / 유출 등을 방지하기 위한 관리적, 기술적 방법 랜섬웨어: 정보를 납치한 뒤 풀어주는 대가로 돈을 요구하는 형태 보안의 목표 기밀성(confidentiality): 소유자가 원하는 대로 정보의 비밀이 유지되어야 함 (아무나 볼 수 없도록) 무결성(integrity): 비인가된 자에 의해 정보가 변경, 삭제, 생성되지 않도록 -> 정보의 정확성, 완전성이 보장되어야 함 가용성(availability): 정보 시스템..

[Python] 백준 17472. 다리만들기2

https://www.acmicpc.net/problem/17472 17472번: 다리 만들기 2 첫째 줄에 지도의 세로 크기 N과 가로 크기 M이 주어진다. 둘째 줄부터 N개의 줄에 지도의 정보가 주어진다. 각 줄은 M개의 수로 이루어져 있으며, 수는 0 또는 1이다. 0은 바다, 1은 땅을 의미한다. www.acmicpc.net 백준에 삼성A형 기출문제로 분류되어 있다. 검색이 통제된 시험장 가서는 절대 못 풀 것 같은 문제. bfs로 라벨링하고 최소 거리 구하는 것까지는 혼자서 처리할 수 있었는데, union find 코드는 예전에 내가 쓴 코드 다시 보고 만들어야 했다. 문제를 풀기 위해 생각해야 할 개념은 크게 세 가지다. 1. 각 섬을 구분해 준다. (섬별로 Labeling 해 준다고 보면 된..

[Python] 백준 2573. 빙산

https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 나타내는 M개의 정수가 한 개의 빈 칸을 사이에 두고 주어진다. 각 칸에 들어가는 값은 0 이상 10 이하이다. 배열에서 빙산이 차지하는 칸의 개수, 즉, 1 이상의 정수가 들어가는 칸의 개수는 10,000 개 이하이다. 배열의 첫 번째 행과 열, 마지 www.acmicpc.net 기타 조건이 추가된 BFS문제. bfs로 좌표를 탐색하면서 '각 좌표별 상하좌우 값이 0인 경우의 개수'를 dictionary에 저장하고, ..

[Python] 백준 10799. 쇠막대기

https://www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저의 배치는 다음 조건을 만족한다. 쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있다. - 쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전히 포함되도록 놓되, 끝점은 겹치지 않도록 놓는다. 각 쇠막대기를 자르는 레이저는 적어도 하나 존재한다. 레이저는 어떤 쇠막대기의 양 끝점과 www.acmicpc.net 2019년 어느 기업 코딩테스트에선가 이 문제를 봤었던 걸로 기억한다. stack을 사용하되, 이전 state를 저장하는 prev 변..

[Python] 백준 2493. 탑

https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 이상 100,000,000 이하의 정수이다. www.acmicpc.net 17298 '오큰수'와 푸는 방법이 똑같은 문제. 오큰수의 for문을 오름차순이 아니라 내림차순으로 돌면 된다. [Python] 백준 17298. 오큰수 스택을 사용해 풀 수 있는 문제. _ = input() # len(arr) 값과 똑같아서 패스 arr = list(map(int, input().split())) stack = [] # 값이 없으면 ..

[Edwith] 통신의 기초 4. 이동통신

4. 이동통신 유선통신 vs 무선통신 유선전화 = 전화교환원이 존재. 통화하려는 두 사람을 직접 연결하는 식. 교환원은 당연히 이제 없지만, 유선 전화를 교환하는 교환대는 여전히 존재 기본적으로는 ‘국가 - 도시 - 지역 - 구내’ 개념으로 번호가 분리되어 있다. 82 - 02(서울) - 0000 - 0000 같은 구내 연결 = 짧은 교환과정, 거리가 멀어질수록 긴 회선을 사용해서 연결을 시도하는 것. 따라서 이 당시만 해도 거리가 멀어질수록 요금이 비쌌다. 무선 통신의 등장 송신탑에서 최대한 멀리 쏘아보내서 전화보내는 사람 / 받는 사람을 연결하는 게 초기 방식. 이 방식은 먼 거리일수록 통신 전력이 많이 필요하다는 단점이 있었음. 그래서 ‘굳이 최대한 멀리 쏘는 대신, 지역별로 나누어서 해당 지역 중..

[Python] 백준 17140. 이차원 배열과 연산

https://www.acmicpc.net/problem/17140 17140번: 이차원 배열과 연산 첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100) 둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다. www.acmicpc.net 시뮬레이션 문제. c연산을 수행할 때 row와 column을 바꾸는 transpose 연산을 해줘야 하는데, python에서는 map과 zip함수를 써서 쉽게 변형할 수 있다.

[Python] 백준 15683. 감시

https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감시할 수 있는 방법은 다음과 같다. 1번 CCTV는 한 쪽 방향만 감시할 수 있다. 2번과 3번은 두 방향을 감시할 수 있는데, 2번은 감시하는 방향이 서로 반대방향이어야 하고, 3번은 직각 방향이어야 한다. 4번은 세 방향, 5번은 네 방향을 감시할 www.acmicpc.net DFS 문제. 문제 자체는 쉽게 이해할 수 있었지만, 코드로 어떻게 구현할지가 머리 아팠던 문제. C++이나 자바로 풀었던 다른 코드에는 ..

[Edwith] 통신의 기초 3강. 인터넷

https://www.edwith.org/tel-ewha-course/joinLectures/13274 통신의 기초 강좌소개 : edwith - 도인실 www.edwith.org 3. 인터넷 IP주소 IP = Internet Protocol. TCP/IP 5계층 중 Internet Layer가 IP계층. -> 네트워크가 서로 달라도 통신이 가능하도록 지원하는 것. 전송하고자 하는 최종 목적지가 바로 IP주소. 이 데이터를 누구에게 전달할지를 IP주소 보고 판단. IP계층에서 헤더값으로 붙는 게 IP. IP vs DNS(도메인 네임 서버) 인터넷 사용할 때 ‘이름’을 IP주소로 변경하는 게 DNS. 사용자의 domain 이름을 IP주소로 변환한다. IPv4 주소: 32bit. 이론적으로 42억개 정도의 주..