📕문제 8*8 크기의 체스판에 왕이 하나 있다. 킹의 현재 위치가 주어진다. 체스판에서 말의 위치는 다음과 같이 주어진다. 알파벳 하나와 숫자 하나로 이루어져 있는데, 알파벳은 열을 상징하고, 숫자는 행을 상징한다. 열은 가장 왼쪽 열이 A이고, 가장 오른쪽 열이 H까지 이고, 행은 가장 아래가 1이고 가장 위가 8이다. 예를 들어, 왼쪽 아래 코너는 A1이고, 그 오른쪽 칸은 B1이다. 킹은 다음과 같이 움직일 수 있다. R : 한 칸 오른쪽으로 L : 한 칸 왼쪽으로 B : 한 칸 아래로 T : 한 칸 위로 RT : 오른쪽 위 대각선으로 LT : 왼쪽 위 대각선으로 RB : 오른쪽 아래 대각선으로 LB : 왼쪽 아래 대각선으로 체스판에는 돌이 하나 있는데, 돌과 같은 곳으로 이동할 때는, 돌을 킹이 ..
전체 글
안녕하세요 💻📕문제 정수 집합 S가 주어졌을 때, 다음 조건을 만족하는 구간 [A, B]를 좋은 구간이라고 한다. A와 B는 양의 정수이고, A < B를 만족한다. A ≤ x ≤ B를 만족하는 모든 정수 x가 집합 S에 속하지 않는다. 집합 S와 n이 주어졌을 때, n을 포함하는 좋은 구간의 개수를 구해보자. 📕입력 첫째 줄에 집합 S의 크기 L이 주어진다. 둘째 줄에는 집합에 포함된 정수가 주어진다. 셋째 줄에는 n이 주어진다. 📕출력 첫째 줄에 n을 포함하는 좋은 구간의 개수를 출력한다. 💡제한 1 ≤ L ≤ 50 집합 S에는 중복되는 정수가 없다. 집합 S에 포함된 모든 정수는 1보다 크거나 같고, 1,000보다 작거나 같다. 1 ≤ n ≤ (집합 S에서 가장 큰 정수) ✔예제 입력 1 4 1 7 14 10 2..
sequential search(순차적 탐색) 순차적 탐색은 각 항목을 차례로 확인하여 우리가 탐색 중인 항목과 비교한다. 찾고자 하는 항목을 찾았거나, 모든 항목을 확인했는데 찾지 못했을 때에 멈춘다 Sorted Arrays [정렬된 배열] ascending order : 오름 차순 11 정렬된 배열에는 각 원소들이 순서대로 되어 있다. Binary search(이진 탐색) 정렬된 배열 이어야 한다. 탐색은 중간부터 시작하여 항목을 발견하거나 확인하지 않은 항목들 중 절반을 제거-> 다시 중간부터 시작-> 반복 배열의 원소의 개수가 20개 이하 일 때는 sequential search가 binary search보다 빠르다. [비교 횟수와 시간의 개념은 다르다] 비교 횟수는 항상 binary search..
Variable [변수] 값을 저장해두는 장소 memory의 특정 장소 simple variable, atomic variable [단순 변수] single value를 저장할 경우 분할 불가 composite variable [복합변수] 한 변수안에 여러개가 들어감. Composite Data types [복합자료형] Records [구조체] 여러항목들의 조합으로 이루어짐. 고용인 구조체 [ 이름, 나이, 월급] Arrays [ 배열] 같은 종류들로 이루어진 조합. index를 가짐. 집합과 유사함. Control Structures [제어 구조] 프로그램 내의 다른 명령들이 실행되는 순서를 결정하는 명령어 의사코드의 기능성에서 정의한 명령어들은? if, while 계수 제어 루프 이벤트 제어 루프
문제 해결 전략 1. ASK questions 문제에 대해 이미 알고 있는 것은? 해답을 찾기 위해 처리해야 할 정보는 무엇인가? 해답은 어떻게 보이는가? 어떤 종류의 특별한 경우가 존재하는가? 해법을 찾아냈다는 것을 어떻게 알게 될 것인가? 2. Look for familiar things [익숙한 것을 찾아보자] 절대로 바퀴를 다시 발명하지 않도록! 유사한 문제들이 다른 형태로 반복 등장할 것이다. 좋은 프로그래머는 이전에 풀었던 작업이나 작업의 일부를 알아보고 해결방법을 알아낸다. 3. divide and Conquer [분할 정복] 큰 문제를 작은 문제들로 나누어 해결한다. 추상화 개념을 적용한다. 분할 정복 방식은 각 서브 태스크가 처리될 수 있을 때까지 계속하여 적용될 수 있다. 문제를 해결하..
문제에 대한 컴퓨터 해결책을 개발하기 위해 사용되는 두 가지 방법론 Tod down desing(하향식 설계) Object oriented design(객체지향 설계) 하지만 pseudocode가 시조 문법이 없다. 하지만 일관되고 모호하지 않게 작성해야 한다. Variables [변수] 값을 저장할 공간의 이름 Assignment 식 값을 변수에 저장 Output [출력] printing a value on an output device Write, Print Input [입력] 외부 단어로부터 값을 얻는 것 그리고 그 값을 저장하는 것 get, Read\ Translating Pseudocode Assembly language 매우 정교하고 시간이 오래 걸림 High-level language [고급..
Assembly Language Assembly Language 기계어 명령어를 숫자가 아니라 , 영어 단어로 표현 Assembler 사람이 이해하기 쉽게 만든 영어 단어-> 컴퓨터가 이해하기 쉬운 기계어 명령으로 변환해줌. 사람은 기계어가 어려움. -> 어셈블리 언어를 통해서 영어로 표현함. 하지만 영어는 컴퓨터가 불편함. -> 따라서 그 영어를 2진수로 바꿔주는 역할(Assembler)이 필요하다. Pep/8 Assembly Language i : immediate addressing mode d : direct addressing mode A new Program 3개의 수를 일겅서 그 합을 출력하는 프로그램을 작성 X+Y+Z load 0 -> sum 초기화 add X add Y add Z stor..
Computer Operations Computer 프로그래밍이 가능하고 정보를 저장, 검색, 처리하는 전기장치 정보와 그 정보를 처리하는 명령어 모두 기계 내에 함께 저장된다. (폰 노이만 아키텍처) Machine Language Machie Language 기계어, 기계 언어 2진수의 실행 명령어들로 이루어진 특정 컴퓨터에 내장된 언어로서 컴퓨터가 직접 사용할 수 있는 언어 사람이 쓰기에는 매우 불편함. Characteristics of machine language 모든 프로세서는 종류에 따라 고유의 실행 명령어들이 있다. 각 프로세서와 그들이 수행할 수 있는 명령들은 통합돼 있다. 각 기계 언어의 명령어는 매우 단순한 작업만 수행한다. CPU가 나올 때마다 기계어는 발전함. Pep/8 Virtua..
Stored Program 폰 노이만 아키텍처 명령어와 데이터 모두 메모리에 저장하자. 폰 노이만이 구상한 저장 프로그램의 구조이다. 현재의 CPU 구조와 매우 흡사하다. CPU, input, output, memory는 버스를 통해서 서로 자료를 주고받는다. input device keyboard mouse mircrophones scanners digital cameras output device monitor printer speaker memory 각각 고유한 실제 주소를 가진 셀 모음 대부분의 컴퓨터는 byte-addressable이다. 해당 주소를 가지고 있고, 주소에 value가 있다. 8bit를 저장할 수 있는 방이 여러 개 방마다 address를 붙임. 2진수 형태이다. 메모리는 주소만 ..