백준 algorithm
-
백준 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 >>..
-
백준 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..
-
백준 3052 - 나머지백준 algorithm 2019. 9. 4. 17:25
10개 크기의 배열을 입력받은 후 다른 값들을 찾기 위해 sorting을 진행하였다. sorting을 한 후에는 같은 값들끼리 모여져 있기 떄문에 다른 값들을 찾기 쉬웠다. 배열[i]번째의 값과 배열 [i+1]번째의 값이 다를 경우 cnt를 올려 서로 다른 값이 몇개 있는지 알아냈다. 1 1 1 2 3 4 5 5 5 6 이런식으로 되어 있을 경우 cnt의 갯수는 5개가 되므로 초기 cnt의 값을 1로 설정하였다. #include #include using namespace std; int main() { int bae[10]; for (int i = 0; i > bae[i]; bae[i] = bae[i] % 42; } int cnt = 1; sort(bae, bae + 1..
-
백준 10871 - x보다 작은 수백준 algorithm 2019. 9. 3. 00:17
수열을 동적으로 생성하기 위해 vector를 사용하였다. 그외는 for문과 if문만 사용하면 쉽게 짤 수 있었다. #include #include #include using namespace std; int main() { int num; int N, X = 0; cin >> N >> X; vector A ; for (int i = 0; i > num; A.push_back(num); } for (int j = 0; j A[j]) { cout