본문 바로가기

전체 글

(276)
Computer Structure - Digital Logic Circuits(1) 본 내용은 임석구, 홍경호 저자의 '최신 컴퓨터 구조'를 참고했음을 알림니다. 1. 논리 게이트 2. 불 대수 1. 논리 게이트 TTL vs CMOS 논리 레벨 정의 TTL : 논리 1 (2.5~5V), 논리 0(0~0.8V) CMOS : 논리 1 (3.5~5V), 논리 0(0~1.5V) 1) NOT 게이트 - 인버터로도 불린다. 2) 버퍼 게이트 - 단순 전송 4) 3상태 버퍼 게이트 - 출력이 High, Low, 하이 임피던스 3개 중 하나인 게이트 5) AND 게이트 - 입력이 모두 1이여야 1출력 6) OR 게이트 - 입력이 하나라도 1이면 1출력 7) NAND 게이트 - 입력이 모두 1이면 0출력 - AND + NOT 8) NOR 게이트 - 입력이 하나라도 1이면 0출력 - OR + NOT 9)..
Cloud - IaaS vs PaaS vs SaaS 우선, 위의 세가지 개념에 대해 알아보기 전에 Cloud가 뭔지부터 알아봐야한다. 클라우드 나의 컴퓨터 장비를 사용하지 않고 컴퓨터 장비를 대신 구축해주며 해야할 작업이 온라인에 분산되어 존재하는 데이터 센터를 의미한다. 서버 구축시 전력, 위치 서버 세팅, 확정성 등을 고려할 필요가 없어지고 서비스 운영에만 신경쓰면 된다. 1. Without Cloud (On-Premise 방식) 특징 (모든것을 자체 제작) - 어플리케이션 제작해야 한다. - 서버 구성을 위한 하드웨어 장치(CPU 등) 고려 - 컴퓨터 냉각 장치 등 고려 - 냉각을 위한 위치 고려 - 네트워크 연결 장치 고려 - 방화벽 고려 고려할 것 정리 "Application, Data, Runtime, Middleware, O/S, Virtua..
Computer Structure - Data Expression 이 블로그에서는 교재 '최신 컴퓨터 구조(임석구 홍성규 지음)을 참고합니다. 컴퓨터 구조에서 컴퓨터가 데이터를 표현하고 처리하고 오류를 검출하는 방식을 설명한 블로그입니다. 1. 진법과 진법 변환 2. 정수 표현 3. 실수 표현 4. 디지털 코드 5. 에러 검출 코드 1. 진법과 진법 변환 단위 1nibble - 4bit 1byte - 8bit 영어 1문자 - 1byte 한글 1문자 - 2byte 1 워드 - CPU에서 취급하는 명령어나 데이터의 길이에 해당하는 비트 수 (8의 배수 비트) (MSB - 최상위 비트, LSB - 최하위 비트) 진법 10 진법 - 우리가 아는 수 2진법 - 2의 n승 단위 -> 0, 1 8진법 - 8의 n승 단위 -> 0~8 16진법 - 16의 n승 단위 -> 0~9, A~..
Computer Structure - Basic 이 블로그에서는 교재 '최신 컴퓨터 구조(임석구 홍성규 지음)을 참고합니다. 컴퓨터의 기본 구조에 대한 블로그입니다. 1. 컴퓨터 시스템의 구성 2. 폰 노이드만, 비 폰노이드만, 하버드 구조 컴퓨터 시스템의 구성 하드웨어 정의 - 컴퓨터에서 각종 정보를 입력하고 처리하고 저장하는 동작이 실제로 일어나게 해주는 물리적인 설계 특징 1) 하드웨어 아래 중앙처리 장치, 기억장치, 입출력 장치 등은 시스템버스로 연결되어 있다. 2) 주기억장치는 휘발성 메모리로 반도체 칩으로 구성되어 고속이다. 캐시역할을 한다, 보조 기억 장치는 비휘발성이다. 3) 입력장치들은 데이터를 2진 형태로 변환하여 컴퓨터 내부로 전달한다. CPU - 프로그램 실행과 데이터 처리를 담당 - 프로세서 or 마이크로 프로세서로 불림 구성 ..
자물쇠와 열쇠 유형 분석 및 구현 이 문제는 복잡하니 천천히 구현해야 한다. 1. 맵 넓히기 2. 자물쇠 설치 3. 키 하나하나 이동하며 설치 - 실패시 : 키 삭제 후 키 로테이션 - 성공시 : 종료 간단하지만 이걸 구현하는데, 맵을 만들고 키를 만들고 크기 구하고 설정할게 많다. 따라서 천천히 구현할 필요가 있다. # 키 로테이션 def rotation(array): x_length = len(array) y_length = len(array[0]) new_array = [[0]*x_length for i in range(y_length)] for i in range(x_length): for j in range(y_length): new_array[j][x_length-i-1] = array[i][j] retur..
인구 이동 문제 유형 파악 및 구현 이 문제 또한 차분하게 풀 필요가 있는 문제이다. BFS를 통해 조건에 맞는 노드들을 그룹짓고 마지막에 변환해주는 간단한 프로그램이지만 고려해야될 부분이 많아 약간 시간을 썼던 것 같다. 이런 문제는 항상 느끼는 거지만 급하지 않게 차분히 하는게 중요하다. 코드 n, min_value, max_value = map(int, input().split()) graph = [] for i in range(n): graph.append(list(map(int,input().split()))) from collections import deque dx = [-1, 0, 1, 0] dy = [0, -1 ,0, 1] real_count = 0 while(1): again_check = Fal..
치킨 배달 유형 파악 및 분석 역시나 구현문제들은 진짜 그냥 차분하게 풀어야한다. 그냥 차분하게 푸니까 풀린다. 이번 문제에 많은 시간을 쏟아 부었다. 구현문제는 항상 설계를 확실히 하는게 중요하고 변수명등 급하게 짜지말자. 코드 n, m = map(int, input().split()) chicken_pos = [] house_pos = [] graph = [] for i in range(n): graph.append(list(map(int, input().split()))) for j in range(n): if graph[i][j] == 1: house_pos.append([i, j]) if graph[i][j] == 2: chicken_pos.append([i, j]) from itertools import..
감시 피하기 유형 파악 및 분석 이 문제는 내 생각엔 구현이 까다로워 구현문제에 가까운 것 같다. 정리를 해보자면 까다로운 구현 + BFS를 통한 감시정도 되는 것 같다. 차분히 구현해야 하며, 구현 과정을 정리하면 아래와 같다. 1. 입력 받음과 동시에, 나중에 맵 초기화를 위한 선생위치, 학생위치, 빈칸위치를 리스트에 담아둔다. 2. 조합을 통해 빈칸위치들 중에서 장애물의 조합을 구한다. 3. 장애물마다 설치하고 감시하고 장애물을 해체하는 과정을 반복한다. 4. 감시 과정은 미리 담아둔 선생위치를 하나씩 꺼내 확인한다. 감시는 학생 발견시 return True를 때려 하던 과정 멈추고 다음 장애물을 확인하기 위해 넘어가게 설정해 두었다. 코드 graph = [] x_pos = [] t_pos = [] s_pos ..