본문 바로가기

전체 글

[운영체제/OS] Operating System Overview - 컴도리돌이 운영체제의 주요 서비스는 하드웨어 자원을 각 사용자 애플리케이션에 적절히 분배해주는 것이다. 하드웨어 자원은 CPU, 메인 메모리, 입출력 장치 등이 존재하며, 이러한 하드웨어 자원을 사용자 애플리케이션이 요구하거나 운영체제 내의 규칙에 의해 적절히 분배하여 컴퓨터 성능을 최대한 효율 적으로 사용해야 한다. 운영체제 내에서는 각 하드웨어를 관리하는 기능 프로세스 관리(Process Management) 기억 장치 관리(Memory Management) 저장 공간 관리(Storage Management) 입출력 장치 관리(I/O deviece Management) 시스템 콜(System Call) 운영체제 정의(Operating System Definition) 사용자가 응용 프로그램을 실행할 수 있는 기.. 더보기
[BOJ] 스택(Stack)- 10828,1874,2504,4889,1918,6198 - 컴도리돌이 데이터를 일시적으로 저장하기 위해 사용하는 자료구조이며, 입출력 순서는 후입 선출(LIFO - List-in, First-out) 방식을 따른다. stack 클래스를 더욱 효과적으로 사용하기 위해 백준에 있는 스택 문제를 풀 생각이다. std:stack void push(int e) e(정수형)을 맨 위에 추가 int pop() 비어있지 않으면 맨 위에 있는 요소를 삭제하고 반환 void display() 모든 요소들을 출력 int peek() 비어있지 않으면 맨 위에 있는 요소를 삭제하지 않고 반환 int size() 요소들의 개수를 반환 bool isEmpty() 비어있으면 true 아니면 false를 반환 bool isFull() 가득 차 있으면 true 아니면 false를 반환 10828번: 스택.. 더보기
[C++][백준 1316][문자열] 그룹 단어 체커 - 컴도리돌이 문제 ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다. 첫째 줄에 단어의 개수 N이 들어온다. N은 100보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 단어가 들어온다. 단어는 알파벳 소문자로만 되어있고 중복되지 않으며, 길이는 최대 100이다. 첫째 줄에 그룹 단어의 개수를 출력한다. 소스 코드 알파벳 위치 값을 갖는 arr와 입력 값을 string으로 받았다. 그리고 단어에 대한 flag를 설정해줬다. 입력받은 string의 첫 번째 index부터 확인하여, 해당 알파벳에 대한 위치 값을 증가시킨다. 다음 알파벳을 확인할 때 만약 중복된 알.. 더보기
[C++][백준 5622][문자열] 다이얼 - 컴도리돌이 문제 입력 값으로 문자열을 받는데, 만약 ABC이면 다이얼 전화기로 222를 돌려야 한다. 해당 2를 돌리 때 3초가 걸리며, 숫자가 증가할 때마다 1초가 증가된다. 문자열을 입력받아서 해당 문자열을 다이얼을 걸기 위한 최소 시간을 출력. 소스 코드 알파벳 문자열을 갖는 string과 해당 알파벳 위치에 해당하는 걸리는 시간을 설정한다. 입력받은 문자열의 인덱스를 찾아서 arr 배열에 해당 index에 해당하는 값을 sum에 더해준다. arr과 s를 설정하여서 매우 쉬운 코드가 되었다.(다른 풀이가 생각 안 나서..) #include #include using namespace std; int main(void) { string s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ",input; in.. 더보기
[C++][백준 2908][문자열] 상수 - 컴도리돌이 문제 세 자리 수인 두 개의 수를 입력받는다. 두 개의 수를 거꾸로 읽어서 두 수중에 큰 수를 출력한다. 소스 코드 두 개의 입력 값을 string으로 받아 줬다. algorithm의 멤버 함수 reverse를 사용하여 해당 string의 문자열을 거꾸로 만들어 줬다. 거꾸로 설정된 두 개의 string의 첫 번째 index 값부터 비교한다. #include #include #include using namespace std; int main(void) { string input1,input2; cin >> input1 >> input2; reverse(input1.begin(),input1.end()); reverse(input2.begin(),input2.end()); for(int i=0; i (i.. 더보기
[C++][백준 1157][문자열] 단어 공부- 컴도리돌이 문제 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 입력 값은 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 출력 값으로는 가장 많이 사용된 알파벳이 대문자로 출력된다. (가장 많이 사용된 알파벳이 여러 개 존재할 경우 '?'출력 소스 코드 해당 코드는 입력받은 문자열에서 알파벳이 나올 때마다 해당 위치의 arr의 값을 증가시켜줬다. arr 값을 설정해주고 해당 arr에서 max값을 갖는 index를 저장한다. 만약 max값을 갖는 index가 존재할 경우 flag를 증가시켜준다. 출력할 때 중복 flag가 설정되어 있으면 '?'을 출력, 아닐 경우 해당 index의 알파벳을 출력. 소문자, 대문자를 구분해주기 위해서 아스.. 더보기
[C++][백준 10809][문자열] 알파벳 찾기 - 컴도리돌이 문제 알파벳 소문자로만 이루어진 단어 S에서 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력한다. 예를 들어 입력값이 abc이면, a는 0번째 위치 b는 1번째 위치, c는 2번째 위치이고 나머지 알파벳은 -1 값을 갖는다. 중복된 값의 시작 위치를 주의하자 소스코드 #include #include using namespace std; int main(void) { string S; //입력 받을 문자열을 string으로 입력받음 int arr[26]; // 알파벳 위치 값을 저장할 배열 cin >> S; for(int i=0; i < 26; i++) { arr[i] = -1; //모든 알파벳 위치 값을 -1으로 초기화 } for(i.. 더보기
[C++][백준 11720][문자열] 숫자의 합 - 컴도리돌이 문제 N개의 숫자가 공백 없이 쓰일 때, 숫자를 모두 합해서 출력하는 프로그램을 작성 입력 값으로는 첫째줄에는 숫자의 개수 N과 둘째 줄에는 공백 없는 N개가 주어진다. N개의 합을 출력해라. 소스코드 #include #include using namespace std; int main(void) { int N = 0 ,sum = 0; string S; cin >> N >> S; for(int i=0; i 더보기

728x90