728x90
728x90

2017/12 29

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

HIT 개발팀의 두 번째 게임, 오버히트(OVERHIT) 리뷰

때마침 넷마블의 테라M과 격돌하게 되어 넥슨과 넷마블 양사의 국내 게임 매출액 1위 싸움을 담당하게 된 게임. 게임성 측면에서는 호불호가 갈려 세븐 나이츠를 언리얼로 만든 것에 지나지 않았다는 평가. 그 기세가 테라M에는 미치지 못하는 듯 하나, 그래도 아직까지는(당연한 이야기겠지만, 그 당연한 것이 지켜지지 않는 요즘...) 밸런싱 유지 등의 강점으로 포지션을 유지하고 있는 오버히트(OVERHIT)에 대해서 이야기를 해보려고 한다. 개발사 : 넷 게임즈(NAT GAMES)퍼블리싱 : 넥슨(NEXON)장르 : 턴제 수집형 RPG 솔직히 말하자면, 이미 넥슨의 다른 게임인 AxE를 하고 있는 상황에서 또 다른 양산형 게임을 하게 되면, 삶이 없을 거 같아 거리를 뒀다. 게다가, 사전오픈 후 접속해서 플레이..

백준] 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)에 저장하고 명령을 해독한다. 이 상황에..

이제는 모바일로 즐긴다, 테라M

간만에 쓰는 게임 리뷰인 것 같다.요즘 PC 온라인 게임 시장은 배틀그라운드를 제외하면, 답이 없는 상황이고 리뷰할 게임은 모바일 게임밖에 없으며 연말 매출 파티(?)를 위해 국내외 대형 게임사들이 앞다투어 게임을 내는 상황에서 필자가 기대를 가득 품고 아이디 선점까지 하고(비록 친구 때문에 서버를 옮겼지만,) 사전 등록했던 게임 중 하나가 테라M이다. 개발사 : 블루홀 스콜(BLUEHOLE SQUALL)퍼블리싱 : 넷마블(Netmarble)게임 종류 : 모바일 RPG 솔직히 말해서 요즘 나오는 게임들과 크게 다를 건 없다. 현실적으로, 모바일 게임을 즐기는 주 연련층이나 직업층이 실시간으로 모든 것을 동작해줄 수 있는 여력이 없는 사람들이라서 디테일한 부분을 제외하고는 자동 기능이 들어가 있어야 게임을..

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

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

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

Computer Science/OS 2017.12.01
728x90