728x90

Computer Science 403

백준] 11586 - 지영 공주님의 마법 거울(인하대학교 경시대회 2015)

시간 제한 : 2초메모리 제한 : 256MB 입력첫 번째 줄에 정사각형 모양의 마법거울의 크기를 나타내는 자연수 N(2 ≤ N ≤ 100)이 입력된다. 그 다음 N개의 줄에 걸쳐 거울에 비친 지영 공주님의 원래 모습이 각 줄에 N개의 문자로 표현된다. 마법거울은 알파벳 대소문자로만 거울에 비친 상을 표현할 수 있다. 마지막 줄에 마법거울의 심리상태를 나타내는 정수 K(1 ≤ K ≤ 3)가 주어진다. 출력마법거울의 심리상태에 따라 거울에 비친 지영공주님의 모습을 N×N크기의 정사각형 형태로 출력하라. (대칭된 모습은 입력으로 주어진 문자의 위치를 대칭시키는 것을 의미한다.) 소스코드 #include #include using namespace std; int main(void) { int len, dir;..

백준] 9093 - 단어 뒤집기(ACM-ICPC 2001)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 공백이 하나 있다. 출력각 테스트 케이스에 대해서, 입력으로 주어진 문장의 단어를 모두 뒤집어 출력한다. 소스코드 #include #include using namespace std; int main(void) { int t, len, st, size; cin >> t; cin.ignore(); while (t--) { string arr; getline(cin, arr); st = 0, size = arr.size(); for (int i = 0; i < s..

백준] 2941 - 크로아티아 알파벳(COCI 2008/2009)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 최대 100글자의 단어가 주어진다. 알파벳 소문자와 '-', '='로만 이루어져 있다.문제 설명에 나와있는 크로아티아 알파벳만 주어진다. 출력입력으로 주어진 단어가 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다. 소스코드 #include #include using namespace std; int main(void) { char arr[101]; int len, cnt = 0; cin >> arr; len = strlen(arr); for (int i = 0; i < len; i++) { if (arr[i] == 'c' && (arr[i + 1] == '=' || arr[i + 1] == '-')) cnt++, i++; else if (..

백준] 1920 - 수 찾기

시간 제한 : 2초메모리 제한 : 128MB 입력첫째 줄에 자연수 N(1≤N≤100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1≤M≤100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수들의 범위는 int 로 한다. 출력M개의 줄에 답을 출력한다. 존재하면 1을, 존재하지 않으면 0을 출력한다. 소스코드 #include #include using namespace std; bool search(int su, int* arr, int start, int end) { int mid; while (1) { mid = (start + end) / 2; if (arr[start..

백준] 2864 - 5와 6의 차이

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 두 정수 A와 B가 주어진다. (1 a >> b; alen = a.length(), blen = b.length(); for (int i = 0; i < alen; i++) if (a[i] == '5') a[i] = '6'; for (int i = 0; i < blen; i++) if (b[i] == '5') b[i] = '6'; s1 = stoi(a) + stoi(b); for (int i = 0; i < alen; i++) if (a[i] == '6') a[i] = '5'; for (int i = 0; i < blen; i++) if (b[i] == '6') b[i] = '5'; s2 = stoi(a) + stoi(b); cout

백준] 11055 - 가장 큰 증가 부분 수열

시간 제한 : 1초메모리 제한 : 256MB 입력첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다.둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000) 출력첫째 줄에 수열 A의 합이 가장 큰 증가 부분 수열의 합을 출력한다. 소스코드 #include using namespace std; int main(void) { int max, n, arr[1001] = { 0, }, dp[1001] = { 0, }; cin >> n; for (int i = 1; i > arr[i]; dp[i] = arr[i]; } for (int i = 1; i

저장 장치 구조(Storage Structure)

모든 메모리는 바이트의 배열을 제공하며, 각 바이트는 주소값을 가지고 있다. 이 특정 메모리 주소에 대해서 일련의 적재(load)와 저장(store) 명령을 통해 상호작용이 일어난다. 적재 명령은 주 메모리에서 CPU 내부의 레지스터로 1 byte 혹은 1 word를 옮기고, 저장 명령은 레지스터에서 주 메모리(RAM;Random Access Memory;주로 DRAM)로 내용을 옮기는 것을 뜻한다. 명시적인 적재/저장 외에 CPU는 실행을 위해서 자동적으로 주 메모리로부터 명령을 적재하기도 한다. 폰 노이만 구조 시스템에서 실행되는 전형적인 명령-실행 사이클에서는, 먼저 메모리에서 명령을 가져와 그 명령을 명령 레지스터(Instruction Register;IR)에 저장하고 명령을 해독한다. 이 상황에..

O/S] 운영체제 정의

어떤 용어에 대한 정의라고 하면 여러모로 중요하게 여겨진다. 좁게 보면 시험에서 정의를 가지고 논하는 부분부터 시작해서 넓게 보면 그 용어가 품고 있는 의미들과 파생된 것들을 이해하는데 큰 도움이 되기 때문이다. O/S에 대해서 줄창 이야기는 하면서 운영체제라고 하면, 그저 '윈도우나 맥, 안드로이드 같은 것'쯤으로 대답하는 것이 전부인 상황에서 좀 알아두는 게 좋을 것 같아 정리한다. 컴퓨터 시스템에 대해서 조금씩 깨우치기 시작하는 사람들은 O/S가 수행하는 여러 가지 기능들이 너무 많아 어느 하나로 정리해서 설명하기가 어렵다.(필자도 애매하다.) 그도 당연한 것이 개인이 PC를 사용하는 이유도 제각각이며, 그 PC에서 구동되는 프로그램도 제각각, 온갖 다양성을 가지고 있기 때문이다. 컴퓨터 시스템을 ..

Computer Science/OS 2017.12.02

O/S] 운영체제가 해주는 일, 해야 하는 일

기본적으로 H/W, O/S, Application, User로 구성된 컴퓨터 시스템에서 운영체제는 시스템 동작 시 리소스를 적절하게 사용하도록하는 방법을 제공하는데, 그 자체로만은 유용한 기능을 수행하지 못하나 다른 프로그램과 함께 해서 유용한 기능을 활용할 수 있는 환경을 제공한다. User사용자 관점에서는 사용하는 인터페이스에 따라 달리 한다. 일반적인 PC는 사용자 하나가 시스템 전체의 리소스를 독점 사용하게 설계되어 있어, 시스템 전체의 목표는 사용자의 수행 작업의 성능을 최대화하는 것이라서 O/S는 사용의 용이성을 위해서 설계되고 성능에는 그보다 덜하게 투자한다. 다양한 H/W와 S/W 자원이 어떻게 공유되는지에 대한 자원의 이용에는 거의 신경 쓰지 않는다. 존재하지 않는 것은 아니지만 대형 컴..

Computer Science/OS 2017.12.01

백준 알고리즘] 4948 - 베르트랑 공준(ACM-ICPC 2011)

시간 제한 : 1초메모리 제한 : 128MB 문제베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼프가 1850년에 증명했다. 예를 들어, 10보다 크고, 20보다 작거나 같은 소수는 4개가 있다. (11, 13, 17, 19) 또, 14보다 크고, 28보다 작거나 같은 소수는 3개가 있다. (17,19, 23) n이 주어졌을 때, n보다 크고, 2n보다 작거나 같은 소수의 개수를 구하는 프로그램을 작성하시오. 입력입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 케이스는 n을 포함하며, 한 줄로 이루어져 있다. (n ≤ 123456) 입력의 마지막에는 0..

728x90