
#include int ii,ij,oi,oj,ptr,ri,rj,l,cnt,od,id;void f0(void) { //입력 배열 회전 if(id==0) {++ii;if(ii >= ri) ii = ri, id=1;} else if(id==1) {++ij;if(ij >= rj) ij = rj, id=2;} else if(id==2) {--ii;if(ii = ri) oi=ri, od=1;} else if(od==1) {++oj;if(oj >= rj) oj=rj, od=2;} else if(od==2) {--oi;if(oi (1) 배열을 차례차례 바깥 부터 회전 시킵니다.이 때 회전 시켜야 할 부분 배열의 개수는 min(행, 열) / 2 입니다. (2) k번 회전이나, 부분 배열의 개수보다 더 많이 회전하는 것..
var a : array[1..90] of integer; i, j, n : Integer; c : char; b : array[1..12] of Char; begin b := 'BRONZESILVER'; readln(n); for i:=1 to n do begin read(c); a[byte(c)] := a[byte(c)] + 1; end; i:=1001; a[byte('E')] := a[byte('E')] div 2; a[byte('R')] := a[byte('R')] div 2; n := 12; for j:=1 to n do begin if a[byte(b[j])] < i then i := a[byte(b[j])]; end; write(i); end. 풀이 : 문자별로 입력된 개수 만큼 + 을 해준..
#include #include int main(void) { char s[1005] = {}; char t[1005] = {}; scanf("%s", s); scanf("%s", t); int s_len = strlen(s); int t_len = strlen(t); for(int i = t_len-1; i>s_len-1; i--) { //t->s 로 맨 뒤를 제거하면서 if(t[i] == 'B') { //마지막이 B이면 앞에 것을 뒤집기 t[i] = 0; //마지막거 지우기 char tmp[1005] = {}; for(int j = 0; j
- Total
- Today
- Yesterday
- Lazy Propagation
- DFS
- BFS
- 정렬
- 그래프
- DP
- Segment Tree
- find
- 1835번
- 백준
- 그리디
- C++
- Krustal
- C언어
- java
- 플로이드
- 덱
- 기하학
- 최대공약수
- 브루트포스
- 누적합
- 오프라인 쿼리
- 세그먼트 트리
- union
- PASCAL
- 누적 합
- 스택
- XOR
- 1835
- 최소 스패닝 트리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |