전체 글
-
백준 2750 - 수 정렬하기 , 백준 2751 - 수 정렬하기 2백준 algorithm 2019. 9. 10. 14:46
단순하게 sort함수를 쓰면 되는 문제이다. 두 문제 모두 같은 코드로 돌아간다. #include #include #include using namespace std; int main() { vector arr; int num; cin >> num; for (int i = 0; i > temp; arr.push_back(temp); } sort(arr.begin(), arr.end()); for (int j = 0; j < arr.size(); j++) { cout
-
백준 2231 - 분해합백준 algorithm 2019. 9. 10. 14:33
간단하게 브루트포스로 구하면 되는 문제였다. 자릿수를 세는 과정에서 실수가 있었고, 벡터에 넣는 값을 다른 값을 집어넣는 실수를 하여 코드가 깔끔하지가 않다. #include #include #include using namespace std; int main() { int N = 0;//분해합의 수 vector M; //생성자 집합 cin >> N; for (int i = 1; i = jari)//숫자의 자릿수를 세는 while문 { jari *= 10; jari_num++; } for (int j = 0; j < jari_..
-
백준 2292 - 벌집백준 algorithm 2019. 9. 8. 00:00
그림을 그려보면 1의 숫자를 둘러싼 원이 계속 생기는 것을 볼 수 있다. 그 원에 속하는 숫자들까지는 거쳐가야 하는 횟수가 동일하다. 그 원들은 6의 배수로 크기가 커져 간다. 1(방의번호)=>1(거쳐야하는 횟수) 2~7 => 2 8~19 => 3 20~37 => 4 이런 방식이다. 그래서 나는 prev= 6*i +prev라는 식을 세워 방의 번호가 속하는 범위를 만들었다. 그 이후 i를 통해 몇번을 통해 그 방까지 갈 수 있는지 알아낼 수 있다. #include using namespace std; int main() { int cnt = 0;//지나가는 방의 갯수변수 int num=0; int prev = 1; cin >> num; for (int i = 1; i < 1000000000; i++) {..
-
백준 15552 - 빠른 A+B백준 algorithm 2019. 9. 7. 13:27
실행속도를 올리기 위해서 ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); \n 를 사용하여 실행속도를 올릴 수 있다. 대신 ios::sync_with_stdio(false); 같은 경우는 싱글스레드에서만 사용하는 것이 안전하다고 한다. 시간초과가 난다면 C 표준입출력 함수들을 사용하는 것이 추천된다. #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int num; int A, B = 0; cin >> num; vector arr; for (int i = 0; i > A >>..
-
백준 10818 - 최소, 최대카테고리 없음 2019. 9. 7. 13:06
기본라이브러리에 있는 max와 min 함수를 사용하면 간단히 해결가능한 문제이다. 초기값설정을 max를 -1000000 min을 1000000로 하면 된다. 사실 벡터와 배열을 사용해서 풀려고 하다가 틀려서 더 간단한 방법을 생각해보았다. 아래가 결과물이다. #include #include using namespace std; int main() { int num; int maxN = -1000000; // max함수를 사용하기 위해 최저값 int minN = 1000000; //min함수를 사용하기 위해 최대값 int temp; cin >> num; for (int i = 0; i > temp; maxN = max(temp, maxN); minN = min(temp, ..
-
백준 2562 - 최댓값백준 algorithm 2019. 9. 6. 15:04
배열 두개를 사용하여 해결하였다. 처음에 입력받은 배열 1개와, sort완료된 배열 1개를 사용해서 최댓값과 최댓값수의 index를 추출하였다. #include #include using namespace std; int main() { int Ori_bae[9] = { 0 }; int Sort_bae[9] = { 0 }; for (int i = 0; i > Ori_bae[i]; Sort_bae[i] = Ori_bae[i]; } sort(Sort_bae, Sort_bae + 9); cout
-
백준 2577 - 숫자의 개수백준 algorithm 2019. 9. 6. 14:45
0부터 9까지의 숫자가 몇번 나왔는지 확인하기위해 size 10짜리의 배열을 만든다. A B C 세 숫자를 곱하였을 때 나오는 수의 자릿수들을 하나씩 확인하여야한다. 10으로 나눴을때의 나머지를 구하게 되면 1의 자리부터 맨 마지막 자리수의 숫자까지 확인할수 있다. 나머지 수를 확인하고 그 수의 숫자를 배열에 넣게 된다. *각 자리 숫자들을 확인할때 for문을 돌리기 위해서 숫자의 끝부분을 알아야하므로 숫자의 길이를 알아내야한다. #include #include #include using namespace std; int main() { int bae[10] = { 0 }; int a, b, c = 0; cin >> a >> b >> c; int sum = a * b*c; int sum2 = sum; i..