백준 / 가장 긴 증가하는 부분 수열 5 / 14003번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 가장 긴 증가하는 부분 수열 5 / 14003번 (플래티넘 5단계)문제 사이트: https://www.acmicpc.net/problem/14003 문제 설명 나의 풀이def solution(a, arr): answer = [-1000000001] for idx in range(a): # 마지막 원소 last_value = answer.pop() # 다시 추가 answer.append(last_value) # 마지막 원소보다 클 경우 추가 if arr[idx] > last_value: answer.append(arr[idx]) else: ..
백준 / 책 페이지 / 1019번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 책 페이지 / 1019번 (플래티넘 5단계)문제 사이트: https://www.acmicpc.net/problem/1019 문제 설명 나의 풀이import sysdef count_digits_in_range(start, end): """ 주어진 범위(`start`부터 `end`까지)의 숫자에서 각 자리 숫자(0-9)가 몇 번 등장하는지 계산합니다. Args: start (int): 범위의 시작 숫자. end (int): 범위의 끝 숫자. Returns: list: 각 인덱스에 해당 숫자의 등장 횟수를 담은 리스트. """ counts = [0] * 10 point = 1 def a..
백준 / 토너먼트 / 1057번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 토너먼트 / 1057번 (실버 4단계)문제 사이트: https://www.acmicpc.net/problem/1057 문제 설명 나의 풀이def main(): # 입력 n, kim, lim = map(int, input().split()) # 라운드 초기화 round = 0 # 두 번호가 같아질 때까지 반복 while kim != lim: kim = (kim + 1) // 2 lim = (lim + 1) // 2 round += 1 print(round)main()※ 알아야 할 것구현 문제 입니다!
[컴퓨터 네트워크] 네트워크 최적화
·
컴퓨터 과학/컴퓨터 네트워크
네트워크 최적화란?유선망은 고속 데이터 전송과 안정성을 제공하지만, 네트워크 최적화가 이루어지지 않으면 병목현상, 지연, 패킷 손실 등의 문제가 발생하여 성능이 저하될 수 있습니다.특히, 송신 측 전송 계층에서 데이터를 무작정 목적지로 보내버린다면 경로 상의 라우터가 혼잡해지며, 이는 병목 현상, 지연, 패킷 손실로 이어질 것입니다.이 문제를 해결하기 위한 방법에 대해 알아보도록 하겠습니다. TCP 흐름제어수신 측이 송신 측보다 데이터 처리 속도가 빠르면 문제 없지만, 송신 측의 속도가 빠를 경우 문제가 발생하게 됩니다. 수신 측에서 제한된 저장 용량을 초과한 이후에 도착하는 패킷은 손실될 수 있으며, 만약 손실된다면 불필요한 추가 패킷 전송이 발생하게 됩니다.흐름 제어는 위와 같이 송신 측과 수신 측의..
[컴퓨터 네트워크] 링크 계층
·
컴퓨터 과학/컴퓨터 네트워크
이번에는 컴퓨터 네트워크 링크 계층에 대해서 알아보도록 하겠습니다.링크 계층의 계요링크 계층이 구현된 위치링크 계층 및 물리 계층은 유선 랜카드(=Network interface controller)에 구현되어 있습니다.유선 랜카드 내부의 링크 계층은 Ethernet 프로토콜을 기반으로 구현 및 동작합니다. 유선 랜카드 동작 과정데이터 준비: 컴퓨터에서 생성된 데이터를 네트워크 계층을 통해 전달받음(IP 패킷 형태)프레임 생성: IP 패킷의 앞쪽에 Ethernet 프로토콜 헤더를 추가하여 프레임으로 캡슐화신호 변환 및 송신: 디지털 데이터(0 or 1)로 표현된 프레임을 아날로그 신호(전기적 신호)로 변환(인코딩)하여 케이블을 통해 전송수신 데이터 처리: 랜카드로 들어오는 데이터를 디코딩, 오류 검사 후..
[컴퓨터 네트워크] 네트워크 계층
·
컴퓨터 과학/컴퓨터 네트워크
이번에는 네트워크 계층에 대해서 알아보도록 하겠습니다!네트워크 계층네트워크 계층은 출발지 호스트에서 목적지 호스트까지 데이터를 전달하는 역할을 수행합니다.목적지까지 IP 패킷을 전달하기 위해서는 중간 라우터를 반드시 거쳐야 하며, 이때 네트워크 계층은 어떤 라우터를 거쳐서 패킷을 최종 목적지까지 전달할 지를 결정합니다.주요 프로토콜: IP(Internet Protocol), ICMP, OSPF, BGP 등 있습니다. 네트워크 계층의 역할전송 계층에서는 종단 호스트 간의 세그먼트 or 데이터그램을송수신한 뒤 애플리케이션으로 전달함네트워크 계층에서는 세그먼트 or 데이터그램을 중간 라우터를 거쳐 최종 목적지로 전송함 포워딩의 개념포워딩: 라우터의 입력 인터페이스로 들어온 IP패킷을 목적지 주소에 맞는 출력 ..
[운영체제] 스레드 동기화, 상호배체, 임계구역
·
컴퓨터 과학/운영체제
스레드 동기화의 필요성두 스레드(또는 프로세스)가 동시에 공유 데이터를 접근하는 경우-> 두 스레드가 동시에 공유 데이터를 읽기만 하는 경우 : 문제 없음-> 한 스레드는 갱신하고 다른 스레드는 읽기만 하는 경우 -> 읽고 갱신하는 순서에 따라 각 스레드가 접근하는 값이 달라질 수 있지만 공유 데이터의 훼손은 없음-> 두 스레드가 동시에 공유 데이터를 읽어 갱신하는 경우: 공유 데이터 훼손 발생위 경우가 스레드가 공유 데이터를 읽어 데이터의 훼손이 발생하게 된다. 즉 동기화란 스레드가 공유 데이터로 접근할 때 공유 데이터의 자원 훼손을 막는 것을 의미한다.(스레드 동기화(thread synchronization): 다수의 스레드가 공유 데이터를 동시에 접근할 때 공유 데이터가 훼손되지 않게 스레드의 실행..
[개발 서적] 명품 운영체제 6장 연습문제 풀이 및 답안 (개념체크)
·
개발 서적/명품 운영체제
생능출판사 명품 운영체제본 연습문제들은 작성자 본인이 푼 것이라 틀릴 수 도 있습니다.p.xxx(해당 페이지에 문제과 관련된 내용이 담겨져 있으므로 책을 보시면 됩니다) [개념 체크]1. 여러 스레드가 공유 변수를 접근하려고 경쟁할 때 공유 변수의 값이 훼손되는 상황이 발생할 수 있다. 공유 변수가 훼손되지 않도록 스레드 사이에 공유 변수에 대한 접근 시간과 방법 등을 조절하는 기법을 무엇이라고 하는가?정답 및 해설)정답: 1번해설: p.295 2. 멀티스레드가 동시에 공유 데이터를 접근할 때 데이터가 훼손되지 않도록 막는 기법의 핵심 정책은 무엇인가?정답 및 해설)정답: 1번(상호배제)해설: p.300상호배제란: 임계구역은 반드시 한 스레드만 배타적 독점적으로 실행하도록 관리되어야하는 정책이다.즉 하나..
백준 / 한수 / 1065번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 한수 / 1065번 (실버 4단계)문제 사이트: https://www.acmicpc.net/problem/1065 문제 설명 나의 풀이def hansu(i): han = list(str(i)) if len(han) == 1: return True elif len(han) == 2: return True else: one = int(han[0]) - int(han[1]) two = int(han[1]) - int(han[2]) # 등차수열 일 경우 True if one == two: return True else: ..
백준 / 체스판 다시 칠하기 / 1018번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 체스판 다시 칠하기 / 1018번 (실버 4단계)문제 사이트: https://www.acmicpc.net/problem/1018 문제 설명 나의 풀이def main(): # n = 세로 길이, m = 가로 길이 n, m = map(int, input().split()) # 체스판 chess = [list(input()) for _ in range(n)] # 답 answer = [] # 모든 체스판을 확인 하는 과정 # 7로 자르면 모든 체스판을 확인 할 수 있다. for i in range(n - 7): for j in range(m - 7): white_count = 0 ..
백준 / 미로 탈출하기 / 17090번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 미로 탈출하기 / 17090번 (골드 3단계)문제 사이트: https://www.acmicpc.net/problem/17090 문제 설명 나의 풀이import sysinput = sys.stdin.readline # 입력을 더 빠르게 받기 위한 설정sys.setrecursionlimit(350000) # 재귀 호출 깊이 제한을 늘려 스택 오버플로 방지def inrange(r, c, R, C): """ 주어진 좌표 (r, c)가 미로의 범위 안에 있는지 확인하는 함수 """ if 0 ※ 알아야 할 것https://www.acmicpc.net/problem/16236아기상어 문제랑 비슷한 느낌이다.
백준 / 포도주 시식 / 2156번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 포도주 시식 / 2156번 (실버 1단계)문제 사이트: https://www.acmicpc.net/problem/2156 문제 설명 나의 풀이n = int(input()) # 포도주 잔의 개수# 포도주 양 입력wine = [int(input()) for _ in range(n)]# dp 배열 초기화dp = [0] * (n + 1)if n == 1: print(wine[0])elif n == 2: print(wine[0] + wine[1])else: dp[0] = wine[0] dp[1] = wine[0] + wine[1] dp[2] = max(wine[0] + wine[1], wine[1] + wine[2], wine[0] + wi..
김치바보
'분류 전체보기' 카테고리의 글 목록 (2 Page)