#include int main(void) { char tmp = 0; tmp = getchar(); int sum = 0; int a = 0; int count = 0; while(1==1) { if(tmp == '\n') { //\n이면, 새로운 줄을 입력받음 tmp = getchar(); } if(tmp == EOF) { //파일 끝나면, 반복문 종료 sum += a; break; } if(tmp == ',') { //,이 나오면 이전의 값을 누적 sum += a; count = -1; a = 0; } if(count == 0) a = tmp-48; else { a *= 10; a += tmp-48; } count++; tmp = getchar(); } printf("%d\n", sum); retu..
#include int main(void) { int t = 0; scanf("%d", &t); //정수는 t에 들어가고, \n은 buffer에 남음 getchar(); //buffer '\n'제거 while(t--) { char tmp = 0; tmp = getchar(); //문자열로 입력받음 int sum = 0; int a = 0; int count = 0; while(1==1) { if(tmp == '\n') { //\n이면 종료 sum += a; //그전까지의 부분합 누적 break; } if(tmp == ' ') { //space이면 sum += a; //그전까지의 부분합 누적 count = -1; //자릿수 초기화 a = 0; //누적합 초기화 } if(count == 0) a = tmp-..
#include int main(void) { int n, k, i; //몇 개, k번, index변수 scanf("%d%d", &n, &k); int a[n+1]; //배열 만들기 for(i = 1; in) i = i-n; } return 0; } 풀이 ex) 7 3 배열 1 2 3 4 5 6 7 -> 1 2 3 제거 4 5 6 7 -> 4 5 6 제거 7 1 2 -> 7 1 2 제거 4 5 -> 4 5 7 제거 1 -> 1 4 5 제거 -> 1 -> 4 -> 1 제거 -> 4 -> 4 -> 4 제거 순서 3 6 2 7 5 1 4 1) 초기값을 1로 하고, 지워지면 0으로 한다. 값이 1인 배열이 k번 있을 때, 그 배열의 값을 0으로 바꾸고 출력한다. 2) 수를 하나씩 제거하다가, 다 제거하면 프로그..
#include int main(void) { int a[501] = {0}; int sum = 0; int h, w; //높이, 가로 scanf("%d%d", &h, &w); //index 변수 초기화 int i = 0; int j = 0; for(i = 0; i 0) //검정색이며, 스위치는 켜져있고, 검정칸들 사이에 빈칸이 있을 때 { sum += count; //구한 빈칸을 sum에 누적 count = 0; //다시 빈칸을 담았던 변수엔 0을 대입 } if(a[j] > 0) { //높이가 1씩 증가할 때마다, 입력받은 숫자들의 크기는 1씩 줄어듬 a[j]--; //ex) 1층 : 3 0 1 4 -> 2층 : 2 0 0 3 -> 3층 : 1 0 0 2 -> 4층 : 0 0 0 1 } } } prin..
https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net #include #include int main(void) { int t = 0; //테스트케이스 scanf("%d", &t); while(t--) { char s[52] = ""; //char s[52] = {0}; 문자열 배열 초기화 scanf("%s", s); //입력 int left = 0; // ( 갯수 int right = 0; // ) 갯수 int len..
https://www.acmicpc.net/problem/10986 10986번: 나머지 합 수 N개 A1, A2, ..., AN이 주어진다. 이때, 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하시오. 즉, Ai + ... + Aj (i ≤ j) 의 합이 M으로 나누어 떨어지는 (i, j) www.acmicpc.net #include #include #define l long long int main(void) { unsigned l int ans = 0; //답 l int n, m; scanf("%lld%lld", &n, &m); //몇 개?, 무엇으로 나눔? //n개 입력받으므로, (index 시작을 1로 잡았다) n+2개만 있으면 된다고 생각했으나, 2칸을 ..
https://www.acmicpc.net/problem/1038 1038번: 감소하는 수 음이 아닌 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소한다면, 그 수를 감소하는 수라고 한다. 예를 들어, 321과 950은 감소하는 수지만, 322와 958은 아니다. N번째 감소하는 수를 www.acmicpc.net #include //감소하는 수의 최댓값은 9876543210이다. 이는 int의 범위를 넘어가므로 long long int로 했다. #define big 10 //10 long long int f(long long int j) //10^(j-1)을 리턴하는 함수 { if(j 1 && j 2 && j 3 && j 4 && j 5 && j 6 && j 7 && j 8 && j 9 &&..
#include //unsigned long long int 범위 : 0 ~ 1.8446744e+19 //문제에서 입력 받은 수의 범위 : 0~4294967295 //즉 오버플로우가 일어나지 않는다 int main(void) { int t; scanf("%d", &t); //몇 번? while(t>0) { unsigned long long int n, m; scanf("%lld%lld", &n, &m); //입력 받음 unsigned long long int gap = m-n; unsigned long long int i; for(i = 1; i>0; ) { unsigned long long int key_1 = i*i; unsigned long long int key_2 = (i+1)*(i+1); un..
- Total
- Today
- Yesterday
- Mo.s
- 덱
- 누적합
- 플로이드
- 그리디
- 최소 스패닝 트리
- 정렬
- 백준
- DFS
- 트리
- DP
- 스택
- C언어
- 6198번
- 1835
- 세그먼트 트리
- 1835번
- C++
- Krustal
- find
- java
- 오프라인 쿼리
- 카드
- union
- 누적 합
- BFS
- 6198
- 16120번
- 최대공약수
- 그래프
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |