728x90

알고리즘/백준 42

[백준/C] 11021번: A+B - 7

https://www.acmicpc.net/problem/11021 11021번: A+B - 7 각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다. www.acmicpc.net 문제 분석 전에 풀었던 덧셈 문제에서 case의 번호를 앞에 출력하는 방식만 추가되었다. 코드 진행 방향 case의 수를 입력받고 A와 B를 입력한다. 그 후 Case #x: 를 출력한 뒤 A와 B의 합을 출력한다. => (Case #1: 2) case의 개수만큼 반복한 뒤 반복문을 종료한다. 코드 더보기 #include int main(){ int t; scanf("%d", &t); for(int i=1; i

알고리즘/백준 2022.06.20

[백준/C] 1110번: 더하기 사이클

https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net 문제 분석 입력한 수의 각 자리수를 더한 뒤(10이 넘을 경우 일의 자리를 구함) 입력한 수의 일의 자리 수와 결합해 두 자리 수로 만든다. 이 방법을 반복하여 원래 입력한 수로 다시 돌아왔을 경우 과정을 몇 번 반복하는지 횟수를 출력한다. 코드 진행 방향 입력받은 수 a를 b에 저장한 뒤, b를 10으로 나눈 나머지를 temp에 저장하고 result는 각 자리수를 더한 값을 저장한..

알고리즘/백준 2022.06.20

[백준/C] 10952번: A+B - 5

https://www.acmicpc.net/problem/10952 10952번: A+B - 5 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 분석 반복문을 통해 덧셈을 계속 진행하고 마지막 탈출 구문을 A와 B가 모두 0 일 때로 조건을 주어 탈출하게 한다. 코드 더보기 #include int main(){ int a, b; while(1){ scanf("%d %d", &a, &b); if(a==0 && b==0) break; printf("%d\n", a+b); } }

알고리즘/백준 2022.06.20

[백준/C] 2884번: 알람 시계

https://www.acmicpc.net/problem/2884 2884번: 알람 시계 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, www.acmicpc.net 문제 분석 24시간을 나타내는 시간을 입력한 뒤 45분을 빼주면 된다. 코드 진행 방향 시와 분을 입력받고 분에서 45를 뺀 뒤 0보다 작으면 시에서 1을 빼주고 분에 60을 더해준다. 시도 마찬가지로 0보다 작으면 24를 더해준다. 코드 더보기 #include int main(){ int h, m; scanf("%d", &h); scanf("%d", &m); m-=45; if(m

알고리즘/백준 2022.06.14

[백준/C] 2588번: 곱셈

https://www.acmicpc.net/problem/2588 2588번: 곱셈 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다. www.acmicpc.net 문제 분석 세 자리 수 × 세 자리 수는 하나의 수에 나머지 수를 각 자리수마다 곱해주어 계산한 뒤 모두 더해준다. 코드 진행 방향 처음 입력받은 수에 두 번째로 입력받은 수를 각 자리마다 나누어 곱해준다. 두 번째 수를 나눌 때는 일의 자리부터 10으로 나눈 나머지를 구하고 십의 자리는 10으로 나눈 몫을 10으로 나누어 나머지를 구한다. 백의 자리는 100으로 나눈 몫을 구하면 된다. 그 후 자리에 맞게 곱하여 출력한 뒤 모두 더하여 출력하면 된다. 코드 더보기 #include int main(){..

알고리즘/백준 2022.06.14

[백준/C] 10950번: A+B - 3

https://www.acmicpc.net/problem/10950 10950번: A+B - 3 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 분석 첫째 줄에 테스트 케이스의 개수를 입력 받아 테스트 케이스만큼 반복해서 진행한다. 두 개의 수를 연속으로 입력받은 후 두 수를 더해 출력하면 된다. 코드 진행 방향 테스트 케이스의 수만큼 반복문을 통해 진행한다. 코드 더보기 #include int main(){ int t, a, b, result; scanf("%d", &t); for(int i=0; i

알고리즘/백준 2022.06.14

[백준/C] 2753번: 윤년

https://www.acmicpc.net/problem/2753 2753번: 윤년 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서 www.acmicpc.net 문제 분석 윤년은 4의 배수일 때, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 코드 진행 방향 조건문을 사용하여 4의 배수일 때를 먼저 나눈 뒤, 100의 배수가 아니거나 또는 400의 배수이거나의 조건을 사용해 나누어준다. 코드 더보기 #include int main(){ int a, count; scanf("%d", &a); if(a%4==0){ if((a%100!=0) ..

알고리즘/백준 2022.06.14

[백준/C] 8393번: 합

https://www.acmicpc.net/problem/8393 8393번: 합 n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 분석 두 가지 방식으로 문제를 해결할 수 있다. 단순하게 반복문을 사용하는 방식 수학적 수식을 사용하는 방식 첫 번째 방법은 for 문과 while 문을 사용하여 쉽게 해결할 수 있다. 두 번째 방법은 아래의 시그마 공식을 사용하여 계산하면 된다. 코드 첫 번째 방법 더보기 #include int main(){ int a; int result = 0; scanf("%d", &a); for(int i=1; i

알고리즘/백준 2022.06.14

[백준/C] 10430번: 나머지

https://www.acmicpc.net/problem/10430 10430번: 나머지 첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000) www.acmicpc.net 문제 분석 A, B, C를 차례로 입력받아 (A+B)%C, ((A%C)+(B%C))%C, (A*B)%C, ((A%C)*(B%C))%C 를 차례로 출력하면 된다. 코드 더보기 #include int main(){ int a, b, c; scanf("%d %d %d", &a, &b, &c); printf("%d\n", (a+b)%c); printf("%d\n", ((a%c)+(b%c))%c); printf("%d\n", (a*b)%c); printf("%d", ((a%c)*(b%c))%c); }

알고리즘/백준 2022.06.14

[백준/C] 2739번: 구구단

https://www.acmicpc.net/problem/2739 2739번: 구구단 N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다. www.acmicpc.net 문제 분석 코딩을 입문했다면 누구나 접해보았을 법한 반복문의 대명사 '구구단'..! 반복문을 사용하여 아홉줄을 출력하면 된다. 코드 진행 방향 for 문, while 문 중 하나를 사용하여 counting 되는 변수와 함께 한 줄 한 줄 출력한다. 코드 더보기 #include int main(){ int a, result; scanf("%d", &a); for(int i=1; i

알고리즘/백준 2022.06.14
728x90