전체 목록!292 2의 2000승 출력하기(C/C++) 2의 2000승 출력하기 설명 2천승이기 때문에 밖에 for문에서 2천 번 돌려주고 안에서는 곱하면서 받아 올림해주면 된다. 마지막으로 배열로 따지면 뒤에서부터 출력하면 된다. 코드 #include int main() { int digit[603] = { 0, }; digit[0] = 1; for (int i = 0; i = 10) { digit[j + 1] += digit[j] / 10; digit[j] %= 10; } } } for (int i = 602; i >= 0; --i) { printf("%d", .. 2018. 5. 15. [BOJ] 2447번: 별찍기 - 10 2447번: 별찍기 - 10 풀이 규칙성을 찾는 수 밖에 없는데 대개 한 칸 빈칸은 쉽게 찾을 수 있을텐데 큰 빈칸을 찾는 게 어려울 수 있다. 이것은 표를 그려보면 쉽게 알 수 있는데 n=9일 때를 그려보면 '나누기 3의 몫’이 1인 구간만 빈칸인 것을 알 수 있다. 코드 #include int n; int main() { scanf("%d", &n); for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { int dx = i, dy = j; while (dx) { if (dx % 3 == 1 && dy % 3 == 1) break; dx /= 3, dy /= 3; } putchar(dx ? ' ' : '*'); } puts(""); } return .. 2018. 5. 15. [BOJ] 1991번: 트리 순회 1991번: 트리 순회 풀이 입력이 알파벳 순서대로 주어진다. 재귀 함수를 잘 이용한다!(재귀 함수 안 쓰면 굉장히 귀찮아짐) 코드 #include #include // hint: these alphabet inputs are inputed as increasing sequence struct Node { int mValue; int mNextLeft; int mNextRight; }; struct Node arr[26]; char root, left, right; void PrintPreorder(int c); void PrintInorder(int c); void PrintPostorder(int c); int main() { int N; for (int i = 0; i < 26; ++i) { arr.. 2018. 5. 11. 비선형 구조의 탐색 비선형 구조 이번 글은 비선형 구조란 무엇이고 탐색하는 대표적인 방법, 그래프 구현 방법을 설명한다. Reference> 트리, 그래프 비선형 구조란? i번째 원소를 탐색한 다음 그 원소와 연결된 다른 원소를 탐색 할 때, 다음에 탐색 가능한 원소가 여러 개 존재하는 구조. 일반적으로 트리나 그래프 형태로 자료를 구성할 수 있을 때 해당한다. 비선형 구조에서 탐색 방법 주로 트리나 그래프가 비선형 구조의 대표적인 형태이다. 비선형 구조는 데이터가 순차적으로 있지 않기 때문에 스택이나 큐를 이용해서 탐색을 한다. 비선형 구조에서 키워드 데이터가 있는 곳: 노드(node)/정점(vertex) 데이터를 잇는 선: 간선(edge)/링크(link) 간선은 화살표 유무에 따라 양/단방향으로 표현 가능하고, 간선에는.. 2018. 5. 8. 거듭제곱 빠르게 계산하기 Using loop unsigned long long pow(unsigned long long base, int exp) { long long ans = base; for (int i = 1; i < exp; ++i) { ans *= base; } return ans; } 하지만 xnx^nxn에서 nnn이 굉장히 커졌다고 생각했을 때는 이 방법은 굉장히 느리다. Using Recursive Function unsigned long long pow(unsigned long long base, int exp) { if (exp == 0) return 1; if (exp & 1) return base * pow(base * base, (exp - 1) / 2); else return pow(base * bas.. 2018. 5. 7. [BOJ] 1009번: 분산처리 1009번: 분산처리풀이를 해주면 된다. 하지만 long long형도 100^1000000까지는 저장하지 못하기 때문에 그리고 우리의 목적에만 두자면 굳이 a^b를 계산한 후 %10을 할 필요가 없고 연산 중간마다 %10 연산을 해주면 된다.또한 단순히 반복문을 돌려서 계산해도 되지만 제곱의 성질인 을 이용하면 훨씬 더 빠른 연산이 가능하다. 이 연산에 대한 설명은 여기를 눌러서 확인하길 바란다.코드1234567891011121314151617181920212223#include int pow(int a, int b){ int ans = 1; while (b) { if (b & 1) ans = (ans * a) % 10; a = (a * a) % 10; b >>= 1; } return ans;} int .. 2018. 5. 5. 선형 구조의 탐색 선형 구조의 탐색 이번 글은 선형 구조란 무엇이고 선형 구조 속에서 탐색하는 대표적인 방법 2가지를 설명한다. 선형 구조란? 선형 구조란 프로그래밍 언어를 배울 때 배우는 배열, 연결 리스트 같은 말 그대로 선 같이 생긴 데이터 구조를 선형 구조라고 한다. 반대로 비선형 구조는 트리, 그래프 등이 있다. [배열] - 대표적인 선형 구조 [연결 리스트] - 얘도 선형 구조다. 선형 탐색 선형 탐색에는 대표적으로 전체 탐색과 이분 탐색(이진 탐색)이 있다. 전체 탐색은 말 그대로 전체를 순환해서 어떠한 값을 찾는 것을 말하고 이분 탐색은 정렬된 선형 구조에서 부분적으로만 탐색을 해서 값을 찾는 부분 탐색을 말한다. 구체적인 예시와 설명을 보면서 설명하면 좋을 것 같다. 전체 탐색 전체 탐색은 전체를 순환하기.. 2018. 5. 5. 삽입 정렬 - Insertion Sort 오름차순으로 정렬하는 것을 기본으로 한다. 그림삽입 정렬은 인덱스에서 하나를 잡아서, 올바른 곳에 삽입하는 그림을 가지고 있다.보통 오름차순 정렬을 하기 때문에 왼쪽부터 순차적으로 인덱스를 하나씩 잡아서 작업을 하게 된다.선택한 인덱스의 왼쪽에 정렬된 배열과 비교하여 정렬을 한다. 이 알고리즘의 그림은 이 정도만 기억하면 될 것 같고 예시를 보면서 구체적으로 살펴보자.예시3 4 1 2 75개의 정렬되지 않은 숫자들이 있다.위에서 설명했다시피 인덱스 하나를 왼쪽부터 잡아서 올바르게 삽입하면 된다.첫 번째 위치에 있는 '3'은 해봤자 왼쪽에 아무 배열이 없으므로 두 번째 위치부터 작업한다. 1) 3 4 1 2 7왼쪽 배열과 비교했을 때 변경할 것이 없으므로 그대로 유지한다.2) 3 4 1 2 7왼쪽 배열과 .. 2018. 5. 3. string타입의 메소드 c_str() 함수 string 타입에서는 C 스타일의 문자열 변환 메서드를 지원하는데 바로 그 함수가 c_str()이다. c_str()의 사용법( 헤더를 포함해야 한다.) string str = "Hello"; const char* cstr = str.c_str(); const char*로 해야하는 이유는 c_str()의 반환형이 const char*이기 때문이다. data() 함수 또한 data()라는 함수는 char* 타입을 리턴한다. string str = "HELLO"; char* ccstr = str.c_str(); 문자열의 타입 추론 문자열 리터럴은 원래 const char* 타입으로 인식된다. 그래서 auto를 사용해서 문자열을 만들 때 s를 붙이지 않으면 const char* 타입으로 인.. 2018. 5. 2. Literal pool 참조 문헌 2018. 5. 2. [JAVA]JAVA 시험 정리 JAVA의 특징: JVM에 의해 실행되므로 플랫폼에 독립적.JAVA의 기본변수 작성 규칙$으로 시작해도 된다.예약어 불가능길이 제한 X데이터형Java Data Typeㄴ Primitive Type(기본형) ㄴ Boolean Type(boolean) ㄴ Numeric Type ㄴ Integral Type ㄴ Integer Type(short, int, long) ㄴ Floating Point Type(float, double) ㄴ Character Type(char)ㄴ Reference Type(참조형) ㄴ Class Type ㄴ Interface Type ㄴ Array Type ㄴ Enum Type ㄴ etc.기본형(32bit 기준)boolean: 1byte(true, false로 소문자다)char: 2.. 2018. 4. 25. [BOJ] 4673번: 셀프 넘버 링크 : https://www.acmicpc.net/problem/4673 독해력이 딸려서 그런지... 사실 처음에 보고 이해를 못했다. 그러니 당연히 코드를 못 짰는데 어쨌든 d(N)은 N의 각 자릿수 합 + N이고 n을 d(n)의 생성자라고 한다. 33은 39의 생성자가 될 수 있는 건데 생성자들이 없는 수가 셀프 넘버다. 1, 3, 5, 7 ... 같은 수들인데 어떤 n으로도 d(n) = 1, 3, 5, 7 ... 을 만들어 낼 수 없다는 말이다. 그래서 난 10,000까지 반복문을 돌리면서 d(i)값을 배열 인덱스에 넣어줬다. (배열의 장점이 여기서 나올 수 있다...)지금보니 해쉬 비슷하게 생기긴 했다 ㅋㅋㅋ pseudo code로 볼때 array[d(i)] = true, if(array[i] .. 2018. 4. 24. KOI예선 & 시험 끝나고 계획 KOI 지역예선 후기?2018 KOI 지역예선이 최근에 끝났죠. 특히 이번 KOI 예선은 참으로 문제가 많았습니다.공교육 기반으로 문제를 낸다... 이 말을 듣고 공교육 기반에서 "올림피아드"라는 수식어가 붙을 수 있을까 별로 내키지는 않았던 것으로 기억합니다. 그렇게 실제 예선이 치뤄지기 몇 주 전에 그 소식을 듣고 어찌됐든 시작한거 열심히 준비해야 겠다는 생각을 갖고 2007년~2017년 기출문제를 다 풀고 풀이도 했었죠. 물론 문제가 이.렇.게 바뀔 줄 모르고 말입니다 ㅋㅋㅋㅋ시험이 2시에 시작이였기 때문에 11시까지 정올반실로 가서 연산자 우선순위, 관습처럼 내려왔던 작년도 본선 문제, 코드, 그리고 풀이를 보고 시험장에 갔습니다.문제 이상한 거 없는지 잠깐 확인하는 시간에 쭉 훑어 봤습니다. 수.. 2018. 4. 22. 자바 default 지정자는 패키지 private이라고도 한다. 2018. 4. 11. [BOJ] 14867번: 물통 14867번: 물통다른 친구가 우선 순위 큐를 이용해서 풀었다고 하고, 인터넷에 풀이 올리신 걸 보니 BFS or DFS로 푸시는 걸 보고 감이 안 잡혔다. ㅠㅠ아무튼 나는 1. A에서만 물통을 채워서 B에게 넘겨주는 작업, 2. B에서만 물통을 채워서 A에게 넘겨주는 작업. 이 둘 중에서 최소 작업 횟수를 출력하게 만들었다. 사실 코드가 굉장히 미개하다. 왜냐하면 중복이 너무 많기 때문이다... 코드를 짤 때 생각해야 할 점이 -1을 출력할 때인데 bucketA == a && bucketB == b일 때가 못 만들 때이다. 왜냐하면 이 때는 어짜피 bucketA, bucketB를 비워줘야 하는데 이렇게 되면 처음 시작할 때와 똑같은 상황이기 때문이다.또한 a == c && b == d일때는 2를 출력해.. 2018. 4. 9. 이전 1 ··· 11 12 13 14 15 16 17 ··· 20 다음