728x90

분류 전체보기 636

C#] 리스트뷰(ListView) 컬럼 클릭하여 정렬하기

리스트뷰 요소를 잘 보면 상단에 버튼처럼 클릭이 활성화된 항목들이 존재한다. 간혹 뭔가를 만들다 보면, 이들 항목을 기준으로, 즉 해당 칼럼을 기준으로 아이템들을 정렬해야 하는 경우가 생긴다. 이때 해당 리스트뷰(ListView)의 속성의 이벤트 탭에서 ColumnClick이라는 이벤트를 처리할 메서드를 지정하고 그 메서드에서 클릭된 칼럼을 분류, 그에 따른 정렬을 구현해주면 된다. 아래 그림은 DirectoryCleaner라는 말 그대로 디렉토리를 정리해주는 윈폼 프로그램으로 필자가 개인적으로 만들고 있는 프로그램 중 하나다. 특정 디렉토리에 저장된 파일들, 하위 디렉토리의 파일들까지 모두 탐색한 결과를 리스트뷰에 담아서 보여주고 있다. 이름, 경로, 최종 수정일, 용량에 대한 정보를 리스트 뷰에 저장..

백준] 10709 - 기상캐스터(JOI 2015)

시간 제한 : 1초메모리 제한 : 256MB 입력입력은 1 + H 행으로 주어진다.첫 번째 행에는 정수 H, W (1 ≦ H ≦ 100, 1 ≦ W ≦ 100) 가 공백을 사이에 주고 주어진다. 이것은 JOI시가 H × W 개의 작은 구역으로 나뉘어 있다는 것을 의미한다.이어진 H 개의 행의 i번째 행 (1 ≦ i ≦ H) 에는 W문자의 문자열이 주어진다. W 개의 문자 중 j번째 문자 (1 ≦ j ≦ W) 는, 구역 (i, j) 에 지금 구름이 떠 있는지 아닌지를 나타낸다. 구름이 있는 경우에는 영어 소문자 'c' 가, 구름이 없는 경우에는 문자 '.' 가 주어진다. 출력출력은 H 행으로, 각 행에는 공백으로 구분된 W 개의 정수를 출력한다. 출력의 i 번째 행 j 번째 정수 (1 ≦ i ≦ H, 1 ..

샤오미 2세대 보조 배터리(10000mAh) 솔직한 사용 후기

솔직히 말하자면, 필자는 중국 기업의 제품을 선호하지 않는다.그런 이유로 샤오미가 대륙의 실수라느니, 가성비의 끝판왕이라느니 어떤 좋은 평가를 해도 제품을 선정하는 과정에서 당연하게 제외했었는데, 고정 관념을 한 번 깨보고자, 그리고 보조 배터리의 필요로 인해서 과감하게 구매했다. 샤오미 제품을 샀을 땐 다른 스펙을 살펴보는 것보다 가장 먼저 해야 하는 일은 바로 정품인지 확인하는 일이다. 정품확인주소 구매한 제품의 포장을 잘 살펴보면 홀로그램과 함께 20자리의 인증 코드를 품고 있는 스크래치 라벨이 있다. 인증 사이트에서 20자리를 입력하고 'Verify'를 누르면, 정품을 확인함과 동시에 그 제품이 무엇인지 뜬다. 이렇게 정품을 확인했다면 비로소 제품의 특이 사항들을 살펴보면 된다. 외관을 한 번 살..

IT/IT 제품 리뷰 2017.12.14

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

스팀이 처음이라면, 무슨 게임을 사야할까?

필자가 처음 스팀을 접했을 때가 2010년 9월이었다. 스팀이라는 플랫폼을 추천 받아서가 아니라, 속칭 레포데(Left 4 Dead) 2를 무료로 얻을 기회여서 가입했었던 걸로 기억한다. 당시에는 지금처럼 스팀이 보편화되지 않았고, 지금과는 달리 국내 게임사들이 대작 게임(주로 MMORPG) 출시 및 컨텐츠 보강에 힘쓰던 시기였던 터라 스팀에 눈을 돌릴 시간이 없었던 것도 있었던 것 같다. 그러나 지금, 대부분의 게임 개발사가 최고 효율을 뽑아낼 수 있는 모바일에 집중하고 있어서 고사양의 PC로 할만한 신작 온라인 게임이 없는 상황이라, 많은 게이머들이 스팀에 눈을 돌릴 수밖에 없어졌다. 이렇게 국내 게임 업계의 공급과 소비만 달라진 것이 아니라 스팀도 국내 게이머들의 소비가 꾸준하며, 그들의 소비 패턴..

게임/기타 2017.12.10

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

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

728x90