728x90

전체 글 94

[백준/C] 10818번: 최소, 최대

https://www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 문제 분석 정렬의 문제로 보여진다. 하지만 정렬로 푸는 방법과 배열을 한 번 돌면서 최소와 최대를 골라내는 방법의 시간 차이가 조금 있었기 때문에 최소와 최대를 각각 구하는 방법으로 풀었다. 코드 진행 방향 n개의 배열을 생성한 뒤 배열을 차례로 입력받고 첫 번째로 입력받은 배열의 수를 max, min에 넣어준다. 그 후 배열의 수가 max보다 크면 max를 바..

알고리즘/백준 2022.06.20

[백준/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
728x90