본문 바로가기

분류 전체보기

(12)
백준) 일곱 난쟁이 https://www.acmicpc.net/problem/2309 2309번 일곱난장이 문제왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다.아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다.아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오.입력아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나..
백준) 소수찾기 https://www.acmicpc.net/problem/1978 1978번 소수찾기 문제주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.입력첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.출력주어진 수들 중 소수의 개수를 출력한다.예제 입력 1 복사4 1 3 5 7예제 출력 1 복사3 알고리즘1. 받은 숫자가 2일 경우 바로 소수의 갯수를 저장하는 변수 np++2. 입력받은 숫자인 num[i]를 2부터 num[i]-1까지의 수로 나누었을때 0이면 소수가 아니다. 3. 2번에 해당하는 경우가 아니면 소수다. np++4. np를 출력한다. 코드
백준) 최대공약수와 최소공배수 https://www.acmicpc.net/problem/2609 2609번 최대공약수와 최소공배수 문제두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.입력첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.출력첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.예제 입력 1 복사24 18 예제 출력 1 복사6 72 알고리즘1. 입력받은 두 개의 숫자 중에서 더 작은 숫자를 small 변수에, 더 큰 숫자를 large 변수에 저장한다.2. 최대공약수는 1부터 small까지의 숫자 i 중에서 large와 small을 나눴을때 나머지가 0을 만족하는 가..
백준) 내가 살게, 아냐 내가 살게 (INU 송년 코드페스티벌 2019) https://www.acmicpc.net/problem/18229 18229번 내가 살게, 아냐 내가 살게 문제N명이 서로 결제하겠다며 카드를 내밀고 있다. 사람들과 점원의 거리는 K이다. 처음으로 손을 K이상 뻗은 사람은 결제하게 되는 영예를 얻는다. 사람들은 다음과 같은 과정으로 손을 뻗는다. 1번 사람이 손을 A1,1만큼 뻗는다. → 2번 사람이 손을 A2,1만큼 뻗는다. → 3번 사람이 손을 A3,1만큼 뻗는다. → ...... → N번 사람이 손을 AN,1만큼 뻗는다. → 1번 사람이 손을 A1,2만큼 추가로 뻗는다. → 2번 사람이 손을 A2,2만큼 추가로 뻗는다. → ...... → N번 사람이 손을 AN,M만큼 추가로 뻗는다. 여기서 A는 2차원 배열의 형태로 입력으로 주어진다.다시 말해..
백준) 펭귄추락대책위원회 (INU 송년 코드페스티벌 2019) https://www.acmicpc.net/problem/18228 18228번 펭귄추락대책위원회 문제일우는 친구들과 펭귄 얼음깨기 게임을 하고 있다. 계속 떨어지는 펭귄이 불쌍했던 일우는 INU 송년 코드페스티벌 참가자들을 펭귄추락대책위원회로 초대했다. 이 펭귄 얼음깨기는 리메이크 된 버전으로, N개의 얼음이 1부터 N까지 번호가 매겨져 있다. 게임은 얼음 1부터 N까지 순서대로 일렬로 나열된 공간에서 진행된다. 게임 시작 시, 펭귄 한 마리가 임의의 얼음 K위에 위치한다. 참가자는 몇 개의 얼음을 깨뜨려서 펭귄을 떨어뜨리는 것이 목적이다. 단, 펭귄이 밟고 있는 얼음은 깨뜨릴 수 없다. 각 얼음은 서로 다른 강도를 가지고 있어서 얼음 i(1 ≤ i ≤ N)를 깨뜨리는 데에 Ai만큼의 힘이 필요하다. ..
임베디드구조)#13 Instruction Sets: Addressing Modes and Formats ■ 챕터 12에서, 우리는 instruction set이 무엇을 하는지에 대하여 초점을 두었다. 상세하게, Operand의 종류와 기계 명령어에 의해서 구체화 될 수 있는 동작에 대해 조사했다. ■ Opcodes(연산자)는 mnemonics라고 불리는 약자에 의해 표현된다.-> 데이터 전송-> 산술적 연산 (+,- ...)-> 논리적 연산 (and, or, xor ...)-> 변환 (rotate...)-> I/O-> 시스템 제어 (branch ...)-> 제어의 전송 ■ Operands(연산부) 또한 symbolically하게 표현된다.-> 메인 혹은 가상(virtual) 메모리-> I/O 장치-> 프로세서 레지스터-> 즉치 데이터(Immediate data) ■ 이번 챕터는 operand와 명령어의 동..
운영체제)#12 Process Synchronization ■ 프로세스는 동시에 수행될 수 있다-> 동작을 불완전하게 끝내면서 언제나 인터럽트 될 수 있다. ■ 동시에 공유 데이터(shared data)에 접근하는 것은 데이터 비일관성(data inconsistency)을 유발할 수 있다. ■ 데이터 일관성(data consistency)을 유지하는 것은 협력적인 프로세스들의 실행 순서를 안정화 하는 기술이 필요하다. (야구게임프로그램)//야구는 매 턴마다 20명의 선수가 해야 하는 일을 정해주는 순서가 있다.//각각의 선수는 자기 일을 하는 스레드로 볼 수 있다.//그 스레드 들은 독립적이지만 상호간의 순서가 있다.//이를 동기화라고 한다. ■ 문제 설명-> 모든 버퍼를 채우는 consumer-producer 문제를 위한 해결책이 필요하다고 가정해보자. 우리는..
운영체제) #10 System Call의 이해: 어셈블리어(PC버전) ■ 기계 명령의 존재를 확인해 보자■ 프로그램의 실체를 파헤쳐보자■ 내가 만든 프로그램은 어떻게 실행되는지 확인해 보자.■ low level 처리가 가능한 high level 엔지니어가 되어 보자. ■ 어셈블리 프로그래밍-> 8051/AVR 어셈블리 프로그래밍 (8비트/16비트)-> 임베디드 보드용 ARM 어셈블리 프로그래밍 (32비트)-> PC용 어셈블리 프로그래밍 (16비트/32비트) : 짧은시간에 가장 간단하고 유용하게 익혀볼 수 있는 환경 1. DOS Box 설치 / MASM 폴더 복사 / 폴더 Mount2. 윈도우 환경의 Editor로 편집한다.3. Dos Box에서 Masm sample.asm4. Link ascii.obj5. 혹은 3. 4. 과정을 줄여서 ml sample.asm6. 실행7...