본문 바로가기
728x90

분류 전체보기480

백준1330 사용언어 Python-PyCharm 문제 두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. A와 B는 공백 한 칸으로 구분되어져 있다. 출력 첫째 줄에 다음 세 가지 중 하나를 출력한다. A가 B보다 큰 경우에는 '>'를 출력한다. A가 B보다 작은 경우에는 ' 2020. 5. 29.
CodeUp3120 사용언어 C 문제 컴퓨터실에서 수업 중인 정보 선생님은 냉난방기의 온도를 조절하려고 한다. 냉난방기가 멀리 있어서 리모컨으로 조작하려고 하는데, 리모컨의 온도 조절 버튼은 다음과 같다. 1) 온도를 1도 올리는 버튼 2) 온도를 1도 내리는 버튼 3) 온도를 5도 올리는 버튼 4) 온도를 5도 내리는 버튼 5) 온도를 10도 올리는 버튼 6) 온도를 10도 내리는 버튼 이와 같이 총 6개의 버튼으로 목표 온도를 조절해야 한다. 현재 설정 온도와 변경하고자하는 목표 온도가 주어지면 이 버튼들을 이용하여 목표 온도로 변경하고자 한다. 이 때 버튼 누름의 최소 횟수를 구하시오. 예를 들어, 7도에서 34도로 변경하는 경우, 7 -> 17 -> 27 -> 32 -> 33 -> 34 이렇게 총 5번 누르면 된다... 2020. 5. 29.
컴퓨터구조3 CPU 오늘은 컴퓨터의 Top-Level 구조에 대해 살펴보겠습니다. 현재의 컴퓨터들은 폰 노이만 구조입니다. 폰 노이만 구조의 특성은 세가지가 있습니다. 1. 데이터와 명령어가 RW memory 에 저장 (가장 큰 특성) 2. memory의 주소값에 의해 구분 3. 순차적 실행 반대로 Hardwired program 존재 하드웨어적으로 선이 연결이 되어 있는 프로그램입니다. 이는 쉽게 변경할 수 없습니다. 이 로직 함수 박스가 덧셈이라고 생각해봅시다. 그럼 숫자를 넣었을때 덧셈이 되겠죠. 근데 갑자기 나눗셈을 하고 싶습니다. 그러면 하드웨어 프로그래밍에서는 방법이 나눗셈 로직 함수 박스를 다시 들고와서 다시 꽂는 거 밖에 방법이 없습니다. 하지만 소프트웨어 프로그래밍에선 그냥 명령어를 '나눗셈'이라고 넣어주면.. 2020. 5. 29.
병합정렬 복습 저번 시간에서는 O(NlogN) 인 퀵정렬에 대해 배웠습니다. 하지만 퀵정렬은 정렬이 거꾸로 되어 있는 경우에 O(N^2)의 시간복잡도로 효율이 굉장히 안 좋아지는데요. 그에 반해 병합정렬은 O(NlogN) 의 시간복잡도를 보장해줍니다. 평균이 퀵정렬보다 빠르진 않지만 보장해준다는 면에서 굉장히 좋은 정렬 알고리즘임을 알 수 있습니다. 병합정렬도 퀵정렬과 같이 나누고 해결하는 '분할 정복(divide and conquer) 알고리즘' 을 사용하는데요. 여기서 병합정렬이 시간복잡도를 보장해주는 이유에 대해서 나옵니다. 병합정렬은 무조건 두개로 나눠줍니다. 그리고 합치면서 정렬을 수행합니다. 합칠때 계산 횟수가 n 번이기 때문에 병합정렬은 O(nlog n) 의 시간복잡도를 보장할 수 있는 것 입니다. i 번.. 2020. 5. 29.
728x90