분류 전체보기

    [python] 백준 - 11279. 최대 힙

    [python] 백준 - 11279. 최대 힙

    🤔문제 해결 S2 | 자료구조, 우선순위 큐 최대힙 자료구조를 활용하는 문제 하지만 귀찮으므로 힙큐 모듈을 사용했다. 💻소스 코드 import sys import heapq N = int(input()) numbers = [] for i in range(N): number = int(sys.stdin.readline()) if number: heapq.heappush(numbers, -number) else: if numbers: print(abs(heapq.heappop(numbers))) else: print(0) 📕문제 확인 출처: BACKJOON ONLINE JUDGE 링크: https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1≤..

    프로세스와 쓰레드(process, thread)

    프로세스와 쓰레드(process, thread)

    📔 기본 용어 정리 프로그램: 실행할 수 있는 파일 (카카오톡, 크롬, 롤 같은 것) 프로세스: 실행중인 프로그램 또는 실행하고 있는 상태(위와 같은 프로그램을 실행함) 프로세서: 프로세스가 동작할 수 있도록 하는 하드웨어(CPU) 스레드: 프로세스 내에서 실행되는 작업 단위 📔 프로세스 프로세스는 컴퓨터의 자원(코드, 데이터, 힙, 스택)을 받아 한번에 하나의 일을 처리함 코드: 프로그램의 코드 데이터: 전역변수 힙: 동적으로 할당되는 메모리 스택: 호출된 함수, 매개변수, 지역변수 등 임시적인 자료 하지만 우리는 음악들으면서 코딩하고, 검색도 한다. 실제로 동시에 이루어지는 것도 있고, 동시에 이루어지는것처럼 보이는 것도 있다. 동시성(Concurrency): 프로세서 하나가 여러 작업들을 조금씩 돌..

    [python] 백준 - 10819. 차이를 최대로

    [python] 백준 - 10819. 차이를 최대로

    🤔문제 해결 S2 | 완전탐색 뭔가 특별한 방법이 있는거 같아서 열심히 짜봤지만 숫자가 겨우 8개 이하이므로 순열을 사용해서 해결(문제유형도 완전탐색) 경우의 수를 전부 구함 💻소스 코드 from itertools import permutations n = int(input()) numbers = list(map(int, input().split())) result = [] for permu in permutations(numbers, n): tmp = 0 for i in range(n - 1): tmp += abs(permu[i] - permu[i + 1]) result.append(tmp) print(max(result)) 📕문제 확인 출처: BACKJOON ONLINE JUDGE 링크: https:..

    정렬 알고리즘 비교

    정렬 알고리즘 비교

    bubble: 인접한 두개의 원소를 비교하여 자리를 교환하는 방식 첫번쨰 원소부터 인접한 원소끼리 계속 자리를 교환 한 단계가 끝나면 가장 큰 원소가 마지막 자리에 고정 정렬이 되어있어도 모든 수를 다 확인하기 때문에 가장 비효율적인 정렬 알고리즘 selection: 기준 위치에 맞는 원소를 선택하고 자리를 교환하는 방식 원소를 돌며 가장 작은 값을 찾는다. 첫번째 원소와 바꿔준다. 첫번째 원소를 제외하고 원소를 돌며 가장 작은 값을 찾는다. 두번째 원소와 바꿔준다. 계속 진행 버블 정렬을 일부 개선함 insertion: 정렬되어 있는 부분 집합에 정렬할 새로운 원소의 위치를 삽입하는 방식 정렬된 집합 S와 정렬되지 않은 집합 U로 나눈다. U에서 맨 앞의 원소를 꺼내서 S의 맨 뒤부터 비교해준다. 자신..

    [python] 백준 - 1541. 잃어버린 괄호

    [python] 백준 - 1541. 잃어버린 괄호

    🤔문제 해결 S2 | 수학, 그리디 요번 구현 문제의 핵심은 최초로 마이너스가 나온순간 뒤의 모든 숫자는 음수로 진행할 수 있다!! 💻소스 코드 c = input() answer = 0 c += '*' # 문제의 핵심!! 마이너스가 최초로 한번 나오는 순간 뒤의 모든 숫자들은 마이너스로 취급한다.!!! number = '' operator = '+' for i in range(len(c)): if c[i].isdigit(): number += c[i] else: if operator == '+': answer += int(number) else: answer -= int(number) if c[i] == '-': operator = '-' number = '' print(answer) 📕문제 확인 출처:..

    OSI 7 계층 (OSI 7 Layer)

    OSI 7 계층 (OSI 7 Layer)

    📔 OSI 7 계층 이란 OSI 참조 모델: 다른 시스템 간의 원활한 통신을 위해 ISO에서 제안한 통신 규약(Protocol) 데이터 통신 시 필요한 장비 및 처리 방법 등을 7단계로 표준화하여 규정 계층을 쪼개는 이유 통신이 일어나는 과정을 단계별로 쉽게 파악할 수 있다. 문제가 생긴 계층만 해결하면 원활하게 작동 가능 📔 OSI 7 계층 설명 물리 계층 하드웨어 ( 케이블, 허브, ... ) 전송 단위는 Bit 데이터를 아날로그 신호로 전송 ( 데이터를 전기 신호로 바꿔주는 역할 ) 송신 컴퓨터에서 데이터를 아날로그 신호로 encoding 후 전송 수신 컴퓨터에서 전송 받은 아날로그 신호를 데이터로 decoding 데이터링크 계층 하드웨어에 ( 랜카드, 브리지, 스위치) 전송 단위는 frame 흐름..