전체 글 59

[네트워크] 네트워크란

이 포스팅은 모두의 네트워크와 Linkedin learning의 Networking Foundations: Networking Basics강의를 수강하고 정리한 글입니다. 네트워크의 구조 네트워크는 두대 이상의 컴퓨터가 연결되어 데이터를 주고 받을 수 있는 구조다. 인터넷은 전 세계의 네트워크를 연결한 거대한 네트워크라고 할 수 있다. 네트워크는 패킷이라는 데이터의 조각을 한 쪽에서 전기 신호로 전달하고 다른 한 쪽에서 송신해 복원하는 과정으로 통신한다. 정보는 0과 1을 나타낼 수 있는 bit로 나타낼 수 있지만 bit는 너무 작은 단위이기 때문에 8bit로 구성되는 byte단위를 사용한다 LAN과 WAN LAN은 local area network로 가정이나 사무실 같이 지리적으로 가까운 곳에서 연결할..

네트워크 2022.08.07

[백준 python] 14501번 퇴사

문제링크 문제 설명 N+1일째 퇴사를 하기로 하고 N일까지 상담을 할 수 있을 때 최대로 받을 수 있는 수익을 계산하는 문제 매일 다른 상담을 선택할 수 있지만 상담에 소요되는 시간과 상담 비용은 모두 다르다 고민한 부분 단순히 loop를 순회하며 풀이할 수 있을 것이라고 생각했지만 해결하지 못해 다른 분들의 풀이를 공부했다. dynamic programming이라는 방법으로 풀 수 있었는데 dynamic programming은 프로그램 중간에 계산된 결과를 다른 공간에 저장해두고 이후에 참조해 사용하는 방식이다 Lesson learned dynamic programming이라는 개념을 알고는 있었지만 관련된 문제를 해결해 본 적은 없었다. 이번 문제는 다른 분들의 풀이를 보고 이해했지만 비슷한 문제가 ..

[백준 python] 14889번 스타트와 링크

문제 링크 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 문제 설명 짝수 N명의 사람들을 두개의 팀으로 나누어 각 팀의 능력치를 계산해 비교해 차이가 최소인 팀 구성을 구하는 문제 팀이 구성되면 구성원 끼리 순서가 없기 때문에 조합을 찾는 문제로 생각해 풀 수 있음 고민한 부분 python의 내장 라이브러리인 itertools의 combinations함수를 사용할 수 있을지 확인해보고 싶었다 백트래킹 문제가 조금 까다롭게 나오는 경우 중간에 탐색할 필요 없는 조건을 찾아 가지치기를 해주어야 하는데 이 문제에서는 가지치기 할 필요 ..

[백준 python] 14891번 톱니바퀴

문제링크 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net 문제 설명 직렬로 연결 된 4개의 톱니 바퀴 중 하나를 골라 돌리는 작업을 K번 반복했을 때 톱니의 상태를 찾는 문제 각 톱니는 자석처럼 S와 N로 구분되는데, 처음 상태에서 다른 극끼리 맞닿은 경우 회전이 전파된다 고민한 부분 회전하는 톱니를 구현할 방법을 고민했는데, list로 만들 수 있지만 파이썬 내장 함수인 deque를 사용하면 rotate 메소드로 쉽게 구현할 수 있다 그 외 어려운 부분은 없었지만, 문제를 꼼꼼하게 읽지 않아 회전한 후에 ..

[백준 python] 14502번 연구소

문제 링크 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 문제 설명 빈 공간, 벽, 바이러스로 구성된 2차원 array를 입력받아 빈 공간 세 곳에 벽을 세운 후 바이러스가 퍼질 수 없는 영역의 수를 세는 문제 구현해야 하는 내용은 빈 공간에 $^{1)}$세 개의 벽을 세우는 것, $^{2)}$바이러스가 퍼질 수 있는 영역을 BFS로 탐색하는 것, $^{3)}$감염되지 않은 영역을 세는 것 고민한 부분 아직 순열이나 조합을 응용하는 문제에 익숙하지 않아 긴 시간동안 고민을 했음 재귀 방식으로 3개의 블럭을 쌓은 후 BFS..

[백준 python] 14503번 로봇 청소기

문제 링크 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 문제 설명 벽(1)과 빈 공간(0)으로 이뤄진 2차원 array를 입력으로 받고 주어진 규칙에 따라 빈 영역을 탐색하는 문제 고민한 부분 구현 할 때 청소를 마친 부분을 하나의 숫자로 채울 경우 디버깅 과정에서 청소 순서를 파악하기 어려웠음 line 24에서 clean_tag를 2로 선언하고 청소를 할 때마다 1씩 증가시켜 청소되는 순서를 파악할 수 있게 구현 청소기가 회전하는 방향을 잘못 파악한 것을 늦게 알아채 오래 걸렸던 문제

[백준 python] 14888번 연산자 끼워넣기

문제 링크 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 문제 설명 순서가 있는 N개의 숫자를 받고 그 숫자 사이에 N-1개의 연산자를 삽입하는 문제 중복을 허용하고, 4종류의 연산자로 이루어진 N-1 길이의 순열을 모두 탐색하는 방법으로 접근 고민 한 부분 DFS 방식으로 탐색을 하며 이미 탐색한 순열은 다시 탐색하지 않도록 가지치기할 방법 (line 39) 더보기 N-1 x 4 크기의 visited 배열을 활용해 depth 번째에 삽입 될 연산자가 이..

함수

함수 함수는 parameter, return, operation으로 구성됨 (개념은 python과 차이 없음) parameter로 전달되는 값은 argument parameter와 return은 있을 수도 없을 수도 있음 함수 또한 사용되기 전에 선언되어야 함. 형식 return되는 type을 function_name 앞에 명시(void는 return되는 값이나 parameter가 없을 때 사용) parameter들도 각각 type을 명시해줘야 함 tip) Argument와 parameter 구분해 이해해야한다. parameter는 함수 밖에서 전달 받을 어떤 변수의 자리를 만들어 놓은 것. operation은 parameter들로 표현되어 수행될 프로그램이 작성됨. 이 때 operation 내에 사용된..

C 연산자

연산자 사칙연산 나누기를 제외하고 python과 같다. 연산자 의미 + 더하기 - 빼기 * 곱하기 / 나누기 - 정수끼리 나눌 시 몫 반환 % 나누기 - 나머지 반환, 피연산자는 반드시 정수형 대입 연산자(=) 대입할 때 좌변과 우변의 타입이 다를 경우 좌변의 변수 타입에 맞춰 대입 복합 대입 연산자 자기 자신에 어떤 연산을 할 때 연산자를 줄여 쓸 수 있음 복합 연산자 의미 a += n a = a + n a -= n a = a - n a *= n a = a * n a /= n a = a / n a %= n a = a % n 다른 타입 간 연산 컴파일러는 기본형 타입 간 연산시 서로 다른 타입이 맞지 않으면 자동으로 타입을 바꿈(implicit type conversion) 변환 과정을 정확히 모르면 경..

printf와 scanf

printf와 scanf는 string 형태로 format을 정하고 형식 지정자로 값을 대입하거나 입력받을 수 있도록 만든 표준 입출력 함수 표준 라이브러리 함수 #include 처럼 #include로 미리 작성된 프로그램을 불러옴 .h, .c, .txt 모두 사용할 수 있고 #include로 불러온 위치에 해당 내용이 실행됨 와 " "로 불러올 수 있는데, 는 표준 라이브러리에서 파일을 찾고, " "는 먼저 작업 폴더에서 찾고 없다면 표준 라이브러리에서 찾음 printf C의 표준 출력 함수 printf("출력할 서식", 변수1,..., 변수n) 형태로 사용할 수 있고 출력할 서식에 형식 지정자(format specifier)를 포함시켜 변수를 함께 출력할 수 있음 변수를 하나도 포함시키지 ..