int a[1024][1024];int loop(int n, int i, int j) { if(n==1) { return a[i][j]; } else { n>>=1; int x,y,z,t; x=loop(n,i,j); y=loop(n,i+n,j); z=loop(n,i,j+n); if(x>y) {t=x;x=y;y=t;} if(x>z) {y=x;x=z;} else if(y>z) y=z; z=loop(n,i+n,j+n); if(x>z) {y=x;x=z;} else if(y>z) y=z; return y; }}int main() { int n,i,j; scanf("%d",&n); for(i=0;i 풀이 : 재귀, 분할정복 loop을 이용합니다.n >=2 즉 2*2 matrix 까지는 네 곳..
var n,i,j:int64;d:array[1..2,1..30]of real;x,y,z,a:real;beginreadln(n);x:=0;y:=0;for i:=1 to n do begin readln(d[1][i],d[2][i]); x+=d[1][i]; y+=d[2][i];end; writeln(x:0:0,' ',y:0:0);a:=1e9;for i:=1 to n do begin x:=0;y:=0; for j:=1 to n do begin if(ij) then begin x+=d[1][j]; y+=d[2][j]; end; end; z:=x*x+y*y; z:=sqrt(z); if a>z then a:=z;end; write(a:0:2);end. 풀이 : 브루트 포스 0. 선분을 입력받습니다. 그러면서 ..

int main() { int n,m,i,j,x=0; //변수 scanf("%d",&n); char d[2][n]; //삼각형의 상태를 저장하는 배열 for(i=0;i0 && d[0][i-1]) --x; //왼쪽 if(i0 && d[1][i-1]) --x; //왼쪽 if(i 풀이 : 기하학? 삼각형의 노란색 모서리의 개수 구하는 방법 0. 노란색 모서리의 총합 = 검은색 삼각형의 개수 * 31. 빨간색 짝수번의 삼각형은 최대 3개의 다른 삼각형과 접하고 있으며 빨간색 홀수번의 삼각형은 2개의 다른 삼각형과 접하고 있습니다.2. 짝수번의 삼각형 아래 (파란색 0번줄 기준, 파란색 1번줄 기준은 위), 왼쪽 오른쪽에 검은색 삼각형이 있는지를 확인하고, 접하고 있는 검은 삼각형의 개수 만큼 노란색 모..
int main() { //변수 int n,x,y,X,Y,i,j,m,a=0; char d[1001][1001]={}; //입력 scanf("%d",&n); for(i=1;i((x-X)*(x-X)+(y-Y)*(y-Y))); //거리가 작다... else { //두 점간의 거리는 5 이상이다. //교수와 성규를 둘러싼 직사각형에 학생이 몇명 있는지를 계산하기위한 준비 if(X2) a=1; //학생이 3명 이상이라면 } printf("%d",a); //출력} 풀이 : 구현, 두 점간의 거리 구하기 0) 입력0.1) 1을 입력 받으면 d[][] 에 1로 저장0.2) 2을 입력 받으면 이때의 i,j 값을 x,y 에 저장 (성규)0.3) 5을 입력 받으면 이때의 i,j 값을 X,Y에 저장..
int main() { //0번 int r,c,n,d[100001][4]={},x,y,z; long long A=0,B=0,C; scanf("%d %d",&r,&c); scanf("%d",&n); //1번 while(n--) { scanf("%d %d %d",&x,&y,&z); if(!d[x][0]) { //1.1번 d[x][0]=d[x][2]=y; d[x][1]=d[x][3]=z; } else { //1.2번 if(d[x][0]>y) d[x][0]=y; if(d[x][1]>z) d[x][1]=z; if(d[x][2]A) { //만약 기존에 있던 것보다 더 큰 조각이라면 A=C; //크기 B=i; //번호 } } } printf("%lld %lld",B..
var n,i,j,k,x,y,c,d:int64;r:real;a,b:array[1..100] of real;beginreadln(n,r);r:=r*r;for i:=1 to n do begin readln(a[i],b[i]);end;for i:=-100 to 100 do begin for j:=-100 to 100 do begin y:=n; for k:=1 to n do begin if r 아래 c언어로 같은 문제를 푼 것이 있습니다.https://h202.tistory.com/829
int main() { long long n,i,j,k,x=0,y,c,d; double r,a[101],b[101]; scanf("%lld %lf",&n,&r); r=r*r; for(i=1;i 풀이 : 기하학, 브루트 포스 1. 입력을 받습니다.2. 브루트 포스 : -100~100 x, y 쌍을 한개씩 전부 시도 할 것입니다. 이중 반복문으로 작성합니다.3. 기하학 : 문제에서 주어신 방정식 (좌표평면에서 두 점 사이의 거리) 을 이용하여 R^2 보다 크면 원에 들어 있지 않는 것으로 판단합니다.4. 기존보다 원에 들어있는 쌀알의 개수가 많다면 (초기값은 0) 이 때의 x,y 값을 변수에 따로 저장해 둡니다.5. 반복이 끝나면 4에서 얻은 x, y 의 값을 출력합니다.

var i,n:int64;a,b:array[1..6]of int64; //변수beginreadln(n); //n개의 직육면체readln(b[1],b[2],b[3],b[4],b[5],b[6]); //첫번째 직육면체for i:=2 to n do begin //2번째 부터의 직육면체readln(a[1],a[2],a[3],a[4],a[5],a[6]); //직육면체들의 교집합은 직육면체, 이 교집합의 두 꼭짓점의 좌표들을 구합니다.//좌표값이 작은 꼭짓점 구하기if a[1]>b[1] then b[1]:=a[1];if a[2]>b[2] then b[2]:=a[2];if a[3]>b[3] then b[3]:=a[3];//좌표값이 큰 꼭짓점 구하기if a[4] 0으로 if a[1] 풀이 : 기하학 문제에서는 x,y,z..
var n,i:int64; a,b,c,d,e,f:real;beginreadln(n);for i:=1 to n do beginreadln(a,b,c);a:=a*3600+b*60+c;b:=b*720+c*12;c:=c*720;d:=abs(a-b);if d>21600 then d:=43200-d;e:=abs(a-c);if e>21600 then e:=43200-e;f:=abs(b-c);if f>21600 then f:=43200-f;if d>e then d:=e;if d>f then d:=f;writeln((d*360)/43200);end;end. 풀이 : 아날로그 시계 아날로그 시계를 43200 등분 했다고 생각하고 풀었습니다 (1시간 간격은 3600) 초가 움직이면서 분침, 시침이 움직이는 것도 고려하였습..
- Total
- Today
- Yesterday
- 누적합
- 오프라인 쿼리
- 기하학
- 백준
- 스택
- XOR
- 1835번
- BFS
- find
- 1835
- Lazy Propagation
- DFS
- 세그먼트 트리
- Segment Tree
- C언어
- Krustal
- 누적 합
- C++
- 그래프
- 정렬
- 플로이드
- java
- 최소 스패닝 트리
- 브루트포스
- 최대공약수
- 그리디
- union
- 덱
- DP
- PASCAL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |