13-14일차 TIL : CPU / 백준 1000번

변시윤·2022년 11월 13일
0

내일배움캠프 4기

목록 보기
13/131

학습내용

  • CPU
  • 백준 - 2557, 1000, 1001, 10998, 1008

CPU

CS를 배워야 하는 이유
컴퓨터의 특성을 이해하면 개발의 원리를 이해할 때 훨씬 용이하기 때문

CPU란?

중앙에서 모든 장치를 관장하는 역할. CU, ALU, 레지스터, 캐시 등으로 구성되어 있다.

  • CU(Control Unit) : 제어장치
    동작을 명령하고 제어하는 역할

  • ALU(Arithmetic and Logic Unit) : 산술 논리 연산 유닛
    가산기, 누산기, 보수기, 오버플로어 검출기, 쉬프르 레지스터, 데이터 레지스터로 이뤄진 연산장치

  • 레지스터
    CPU 내부에서 명령어니 연산 데이터를 일시적으로 기억하는 임시 기억 장치

  • 캐시
    CPU와 주기억장치 사이의 속도를 비슷하게 조정하는 역할. 주기억장치에서 필요한 데이터를 인출 후 캐시 메모리로 옮겨서 데이터 접근 시간과 CPU의 처리 속도를 맞춤으로써 처리속도를 향상시킨다.


싱글코어에서 멀티코어로 진화한 이유

코어의 성능 향상 한계로 인한 전력 소모와 발열을 해결하기 위함


CPU와의 통신

0과 1로 이루어진 컴퓨터와 통신하기 위해 프로그래밍 언어가 탄생. C, C++, Java와 같은 프로그래밍 언어 이전에 어셈블리어라는 유사 기계어가 있었지만 제약이 많은 관계로 현재와 같은 프로그래밍 언어가 널리 보급되었다. 이 언어들을 컴퓨터에서 기계어로 치환한 후 명령어 인출 👉🏻 명령어 해독 👉🏻 실행 👉🏻 반영의 과정을 거쳐 작업을 수행한다.



백준

1000번 A+B 파이썬

같은 유형: 1001, 10998, 1998

문제 : 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력 : 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)
출력 : 첫째 줄에 A+B를 출력한다.
예제 입력 : 1 2
출력 : 3

제출답안

def plus(a,b):
    if a > 0 and b < 10:
        print(a + b)
    return

plus(1,2)

정답

a = list(map(int, input().split()))
print(a[0]+a[1])
  1. input()으로 입력값 받기
  2. 입력값 사이에 띄어쓰기가 있으므로 split()으로 두 문자를 분할
    (파이썬에서는 split() 함수에 띄어쓰기를 포함하고 있으므로 split(' ')으로 표기 X)
  3. map()int로 입력값을 정수로 받아온 뒤 list()로 담기
  4. a라는 변수에 배열을 할당한 후 a의 요소들을 합산

해설
(백준 1000번, Class 1) A+B

일단은 문제를 잘못 파악했다. 예제 입력의 1 2가 문자열이라는 생각을 못해서 숫자열을 받아서 더해주는 함수로 접근했다. 근데 문제를 제대로 파악했어도 못풀었을 것 같다. 정답에 사용된 함수들을 다 알고있긴 한데 막상 문제 풀 때는 생각이 안났을 것 같다. 1000번 문제를 풀고나서 같은 유형의 문제는 전부 해결했으니 당분간은 이렇게 유형을 파악한다는 느낌으로 문제를 풀어야겠다.

profile
개그우먼(개발을 그은성으로 하는 우먼)

0개의 댓글