728x90

프로그래밍 410

백준] 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..

C++에서 문자열을 숫자로, 숫자를 문자열로

문자열 처리, 특히 숫자를 문자열로 다루어야 하는 문제들을 접하면 C언어를 주로 했던 사람들은 바로 떠올리는 게 atoi나 itoa다. 물론, 이를 몰라서 아스키 코드를 바탕으로 한 문자열 처리를 하겠지만(필자가 그랬다.), 어쨌든 이 두 함수를 알고 있는 사람들은 C++에서도 cstdlib.h 헤더 파일을 추가해주면 사용이 가능하다. 문자열을 숫자로 변환시켜주는 atoi는 표준 함수라서 크게 문제되진 않지만, 함수 자체가 가지고 있는 문제점이 있어서 더 좋은 대안이 있다면 사용에 주의를 기울여야 한다. 보통은 기본적인 수준의 문자열 처리 문제들을 푸는 상황에서는 문제가 없다. 문제는, 숫자를 문자열로 변환 시키는 itoa다. 표준이 아니라서 비표준 함수를 처리해주지 못하는 컴파일러를 만나면 컴파일 에러..

백준] 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

Xamarin] Xamarin.Forms 공식 가이드 따라 시작하기

일전에 자마린에서 제공하는 공식 가이드를 따라 'Phoneword'라는 간단한 앱을 만들었는데, 전화번호를 입력 받아 통화를 거는 그 간단한 앱을 통해서 Xamarin.Android에서는 어떤 식으로 앱을 개발하는지 알아봤다. 이번에도 역시 해당 앱을 통해서 Xamarin.Forms에 대해서 경험해보도록 하자. 일단 새 프로젝트를 만들어야 한다.(Ctrl+Shift+N)새 프로젝트 생성 폼에서 'Visual C#>Cross-Platform>Cross Platform App(Xamarin.Forms or Native)'를 선택하고 솔루션 이름을 'Phoneword'로 정해주고 적합한 위치에 프로젝트 경로를 지정해준 후 프로젝트를 생성하자. 곧장 프로젝트가 생성되어 코딩하는 것이 아니라 'New Cross ..

O/S] 운영체제 정의

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

Computer Science/OS 2017.12.02
728x90