🌿All posts 199

✏️ 04. 실제로 컴퓨터끼리는 IP 주소를 사용해 데이터를 주고받는다.(하)

강의가 다른 강의에 비해 길어 (상) (하)로 나누어서 정리했습니다. 강의 주소 : https://www.youtube.com/watch?v=s5kIGnaNFvM&list=PL0d8NnikouEWcF1jJueLdjRIC4HsUlULi&index=6 1. 서브넷 마스크란? 클래스풀한 네트워크 대역을 나눠주는데 사용하는 값. 어디까지가 네트워크 대역을 구분하는데 사용하고, 어디서부터 호스트를 구분하는 데 사용하는지 지정 2진수로 표기했을 때 1로 시작, 1과 1사이에는 0이 올 수 없다는 규칙을 가지고 있다. 일반적인 IP 주소 사설 IP와 공인 IP 1. 공인 IP 인터넷 네트워크 통신망과 통신할 때 사용하는 주소 2. 사설 IP 같은 네트워크 대역에서 사용하는 IP 주소 사설 IP를 사용하고 있는 장비들..

CS/Network 2021.04.30

✏️ [해시] 완주하지 못한 선수

1. 문제 programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 2. 접근 방법 해시로 접근을 해보았습니다. 1. participant의 이름들을 key값으로 갖는 hash를 만들어서 해당 key의 value는 해당 이름을 가진 사람들의 숫자입니다. (동명이인의 경우 +a, 아닌 경우 1) 2. completion을 반복하여 동명이인의 경우-1, 아닌 경우 해당 key를 완전히 빼버립니다. 3. 남은 key를..

Algorithm/Python 2021.04.30

✏️ [백준 11399] ATM

1. 문제 www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 2. 접근 방법 합을 최소로 만들기 위해서는 결국 가장 적은 수가 더 많이 더해져야하니까 정렬한 후에 더해주면 된다. 3. 코드 python N = int(input()) money = list(map(int, input().split())) money.sort() answer = 0 for i in range(N): answer += (money[i]*(N-i)) print(answer) 4. 마치며 .

Algorithm/Python 2021.04.28

✏️ [백준 1932] 정수 삼각형

1. 문제 www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net 2. 접근 방법 dp문제다. 삼각형이 아니라 2차 배열로 생각해보면 input의 경우 0 0 0 0 0 0 0 0 0 0 이런 형상이다. 그럼 얘를 좌표로 나타내면 ([열(x), 행(y)]으로 나타냈습니다.) [0, 0] [0, 1] [1, 1] [0, 2] [1, 2] [2, 2] [0, 3] [1, 3] [2, 3] [3, 3] [0, 1]까지의 합은 [0, 0]과 [0, 1]을 더한 값 [1, 2]까지의 합은 [0, 1]과 [1, 1] 둘 중 더 큰 값과 [1, 2]..

Algorithm/Python 2021.04.27

✏️ [swea 5650] 핀볼 게임

1. 문제 swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRF8s6ezEDFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 2. 접근 방법 시뮬이라 문제에 나온대로 진행하면 된다. 유의해야 할 점은 1. 웜홀이나 블랙홀을 만나지 않는 한 현재 방향을 유지하면서 계속 직진 2. 핀볼이 웜홀에 빠지면 동일한 숫자를 가진 다른 반대편 웜홀로 빠져나옴. 진행 방향 유지 3. 블랙홀 만나면 끝 (return) 4. 처음 위치로 돌아오면 끝(return) 5. 점수 = 벽이나 블록에 부딪힌 횟수 (웜홀 통과는 점수에 반영되지 않는다)..

Algorithm/Python 2021.04.24

✏️ [swea 5656] 벽돌깨기

1. 문제 swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRQm6qfL0DFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 2. 접근 방법 1. 만약 board에 벽돌이 하나도 존재하지 않는다면 -> 0 출력, 로직 끝 2. 만약 N개의 구슬을 떨어뜨렸다면 -> 현재 가장 적은 벽돌 갯수 출력, 로직 끝 3. 아직 N개까지 구슬을 안떨어뜨렸다면 -> 구슬 떨어뜨리기 고고 구슬 떨어뜨리기(DFS) 1. 1~W열 중 하나를 고른다. 2. 해당 열에서 가장 위에 있는 벽돌에 구슬이 떨어짐 3. 구슬이 떨어지면서 연쇄 반응이 한 ..

Algorithm/Python 2021.04.23

✏️ [swea 5658] 보물상자 비밀번호

1. 문제 swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRUN9KfZ8DFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 2. 접근 방법 리스트를 회전할 수 있다면 쉽게 풀이할 수 있습니다. 아 그리고 16진수를 10진수로 바꾸는 방법도 알아야함 int(16진수로쓰여진숫자, 16)하면 됨 이와 동일하게 8진수, 2진수도 int(8진수로쓰여진숫자, 2)하면 됨 10진수를 2진수, 8진수, 16진수로 바꾸려면 각각 bin(숫자), oct(숫자), hex(숫자) 하면 됨 3. 코드 python3.5 T = int(input()..

Algorithm/Python 2021.04.23

✏️ [백준 1655] 가운데를 말해요

1. 문제 www.acmicpc.net/problem/1655 1655번: 가운데를 말해요 첫째 줄에는 수빈이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 수빈이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net 2. 접근 방법 인풋을 받으면서 가운데를 확인하면 백퍼 시간초과 각이었고 접근 방법이 생각나지 않아 검색을 했다. 이 문제는 최대힙과 최소힙을 사용해서 풀어야하는 문제였다. 1. 최소 힙의 값들은 모두 최대 힙보다 크도록 하고 2. 최대 힙의 크기가 최소 힙의 크기보다 1 크거나 같도록 유지하며 값을 넣는다. 3. 값을 넣어준 후 최대 힙과 최소 힙의 top값을 비교해서 최소 힙의 t..

Algorithm/Python 2021.04.23

✏️ [백준 11286] 절댓값 힙

1. 문제 www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 2. 접근 방법 heapq를 써서 최대 힙을 구한 것과 동일한 방법으로 우선순위를 사용해주시면 됩니다. 절댓값이므로 우선순위는 abs(n)으로 해주심 됨다 ~! 3. 코드 python import sys, heapq N = int(input()) lst = [] for i in range(N): n = int(sys.stdin.readline()) if n: heapq.heapp..

Algorithm/Python 2021.04.23

✏️ [백준 11279] 최대 힙

1. 문제 www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net 2. 접근 방법 heapq를 사용해서 접근해야하는데욧 heapq는 최소 힙이기 때문에 우선순위를 추가해줘서 만들어주면 됩니다. 우선순위는 heappush(lst, (-n, n)) 과 같이 인풋 된 숫자 값을 음수로 바꿔주면 ~! 됩니다. 그리고 출력할 때는 원래의 값인 1번 인덱스 값(n)을 출력하면 됩니다요 3. 코드 python import sys, heapq N = int(i..

Algorithm/Python 2021.04.23