본문 바로가기

Development

BOJ 1002 (터렛) #include #include int main() { int T, res; double x1, y1, r1, x2, y2, r2; scanf("%d", &T); for (int i = 0; i q) res = 2; if (d == r || d == q) res = 1; if (d > r || d < q) res = 0; if (x1 == x2 && y1 == y.. 더보기
BOJ 1316(그룹 단어 체커) #include #include int main() { int N; scanf("%d", &N); int count = 0; for (int i = 0; i < N; i++) { char word[101]; int alpha[26] = { 0, }; int flag = 1; scanf("%s", word); int length = strlen(word); for (int j = 0; j < length; j++) { //printf("%c: %d\n", word[i],alpha[word[i] - 97]); if (alpha[word[j] - 97] == 0) { alpha[word[j] - 97] = 1; } else { //printf("i = %d, word[i] = %c\n", i, word[i]).. 더보기
BOJ 1577(단어공부) 처음에 C++로 구현하려고 했는데 계속 런타임 에러가 떴다. #include #include char str[1000001] = { 0, }; int main() { int alpha[26] = { 0, }; unsigned int max = 0; scanf("%s", str); unsigned int length = strlen(str); for (int i = 0; i = 'A' && str[i] = 'a' && str[i] 더보기
BOJ 10828(스택), 10799(쇠막대기) 10828번: 스택 #include #include #include #include using namespace std; int main(){ stack st; int n, m; char tmp[10]; cin >> n; for(int i=0;i> tmp; if(!strcmp(tmp, "push")){ cin >> m; st.push(m); } else if(!strcmp(tmp, "pop")){ if(st.size() == 0) cout 더보기
CodeUp 기초100제 (바둑알 십자뒤집기) 19 x 19 바둑알이 깔려있는 상황과 십자뒤집기할 기준좌표를 입력으로 주어진다. 이를 십자뒤집기하면 되는 문제이다. 처음에 십자뒤집기 개념을 잘 몰랐는데 주어진 기준좌표는 뒤집지않고 십자모양으로 뒤집으면 된다. #include #define N 21 int main(){ int arr[N][N]={0,}; int a,x,y; for(int i=1;i 더보기
Win32 API 정리 API Hooking쪽을 공부하다가 C++ 코드를 읽는데 Win32 API 부분이 어려워서 공부 겸 정리하려고 글을 씁니다. API? API(Application Programming Interface) 운영체제가 응용프로그램을 위해 제공하는 함수의 집합 운영체제가 정한 규칙에 따라 하드웨어에 엑세스하거나 응용 프로그램끼리의 상호작용 가능 따라서 이를 위해 API를 제공. 변수 명명법 C에선 i,j와 같이 짧은 변수명을 사용했지만, 윈도우즈에선 많은 변수가 사용되므로 이해하기 쉽게 길게 표현한다. 관습적으로 정해진 접두어를 이용하기도 한다. cb(Count of Bytes) : 바이트 수 dw(double word) : 부호없는 long형 정수 h(handle) : 윈도우, 비트맵, 파일 등의 핸들 sz.. 더보기
알고리즘 DP 정리 DP? Dynamic Programming 문제를 해결할 때, 큰 문제를 작은 문제로 분할하여 푸는 방법. 분할 정복 알고리즘과 유사. DP는 계산했던 결과를 저장하여 불필요한 연산 제외. 크게 Top-Down, Button-Up 방법 존재. 메모이제이션 (Memoization) : 계산한 값 저장하는 것 특성 Overlapping Subproblems : 큰 문제 --> 작은 문제 --> ... OPtimal Structure : 작은 문제의 결과값(return) --> 큰 문제의 결과값 --> ... 문제풀이 #include int main(){ int n; int a=0,b=1,result=0; scanf("%d", &n); if(n==1) { printf("1"); return 0; } for(i.. 더보기
기초 자료구조 정리(리스트, 그래프, 트리) 리스트(List) 연결 리스트와 같이 순서가 있는 자료구조 C에선 구조체를 이용해 구현 가능 C++에선 #include 를 통해 사용 가능 상황에 따라 배열보다 효율적으로 문제를 풀 수 있음 std::list std::list::iterator #include #include using namespace std; int main(){ list lt; list::iterator iter = lt.begin(); int n, m; scanf("%d %d", &n, &m); for(int i=1;i 더보기