수학
-
프로그래머스 n^2 배열 자르기 C++프로그래머스(Programmers) 2022. 3. 21. 00:38
#include #include using namespace std; vector solution(int n, long long left, long long right) { vector answer; long divisor=0, mod=0; //나누는 수, 나머지 for(long long idx =left; idx divisor)answer.push_back((mod+1)); else answer.push_back((divisor+1)); } return answer; } 제한사항 1 ≤ n ≤ 107 0 ≤ left ≤ right 수학식..
-
멀쩡한 사각형 C++프로그래머스(Programmers) 2021. 12. 17. 00:19
제한사항 W, H : 1억 이하의 자연수 입출력 예 W H result 8 12 80 입출력 예 설명 입출력 예 #1 가로가 8, 세로가 12인 직사각형을 대각선 방향으로 자르면 총 16개 정사각형을 사용할 수 없게 됩니다. 원래 직사각형에서는 96개의 정사각형을 만들 수 있었으므로, 96 - 16 = 80 을 반환합니다. => 가려지는 사각형들은 그룹핑을 할 수 있습니다. => 가려지는 사각형들의 무리는 W와 H의 최대공약수의 갯수만큼 있습니다. => 작은사각형무리에서 지워지는 사각형의 갯수는 X+Y-1입니다. (X:W를 최대공약수로 나눈수 Y:H를 최대공약수로 나눈수) => 나머지는 아래의 풀이를 보면 됩니다. #include #include #include using namespace std; in..
-
순열과 조합의 차이유용한 정보 2021. 12. 16. 00:12
순열 순서가 있는 조합 (중복 허용X) => 순서가 있으므로, 중복을 허용하지 않습니다. ex) A B C 가 있을 때 이 세명을 세울 수 있는 방법의 개수를 구하시오. => (A B C) (A C B) (B A C) (B C A) (C A B) (C B A) => n * (n-1) * (n-2) ....*1 => nCp => 3* 2* 1 int main() { string example ="1234"; do{ cout 위와 같이 설정을 하고 문제를 풀었습니다. 입력받은 pair형 vector를 sort함수를 하여 정렬시킵니다... codingham.tistory.com => 백준에는 간단한 수열 문제가 있습니다. 보시는 블로그에서 수열 혹은 순열을 검색하여 해당 문제들 풀이를 확인할 수 있습니다.
-
백준 1193 - 분수찾기백준 algorithm 2021. 1. 4. 22:41
=> 단순한 규칙성을 찾는 문제입니다. => 처음부터 끝까지 찾아갈 경우 시간제한에 걸리는 경우가 생길 수 있습니다. x가 몇번째 줄에 해당하는지 찾습니다. 해당 줄이 짝수인지 홀수인지 판별합니다. 각 줄의 성질에 따라 deno(분모), nume(분자)를 구하여 print 합니다. 각 줄에 있는 분수는 아래의 성질을 만족합니다. line + 1 = 분모 + 분자 위의 성질을 이용하여 for문을 통한 탐색이 아닌 사칙연산으로 원하는 분수를 구할 수 있습니다. #include #include using namespace std; void Print(int deno, int nume) { cout
-
백준 17087 - 숨바꼭질 6백준 algorithm 2020. 3. 18. 18:27
=> 나( S )가 갈 수 있는 곳은 ( S + D ) or ( S - D ) 이다. => 내가 Y에 가기 위해서는 Y-S 의 절대값이 D의 배수가 되어야한다. => 내가 Z에 가기 위해서는 Z-S 의 절대값이 D의 배수가 되어야한다. => 모든 Y-S , Z-S 값들의 최대 공약수를 구하면 된다. ex ) S : 3 동생들 위치 : 1 7 11 이 경우 최대공약수를 구해야할 수들은 2 4 8 가 된다. *** 배열을 사용할 때 잘못된 index에 접근하거나, 0으로 나누는 경우가 없도록 주의해야한다. (런타임 에러) #include #include #include #include using namespace std; long GCD (long A, long B) { while(B!=0) { long t..