자료구조와 알고리즘/문제풀이

[Baekjoon] 단계별로 풀어보기 : 반복문

순정법사 2023.08.16

 

이번 알고리즘 문제 풀이는 C로 진행했습니다 

코드에 오탈자나 문제가 있으면 언제든지 댓글로 알려주세요!

 

 

 


 

 

 

A. 반복문

 

반복문 단계

코딩 공부를 잘 하여 이렇게 long long long long...을 칠판에 적는 일이 없도록 합시다.

www.acmicpc.net

 

1. 구구단

a. 문제지  : 2739

 

b. 정답

📚 풀이

#include <stdio.h> int main(){ ​​​​int A; ​​​​scanf("%d", &A); ​​​​if(A>=1 && A<=9){ ​​​​​​​​for(int i=0; i<9; i++){ ​​​​​​​​​​​​printf("%d * %d = %d\n", A, (i+1) , A*(i+1)); ​​​​​​​​} ​​​​} ​​​​ ​​​​return 0; }

 

 

2. A+B - 3

a. 문제지  : 10950

 

b. 정답

📚 풀이

#include <stdio.h> int main(){ ​​​​int T, A, B; ​​​​scanf("%d", &T); ​​​​ ​​​​for(int i=0; i<T; i++){ ​​​​​​​​scanf("%d %d", &A, &B); ​​​​​​​​printf("%d\n", A+B); ​​​​} ​​​​return 0; }

 

 

3. 합

a. 문제지  : 8393

 

b. 정답

📚 풀이

#include <stdio.h> int main() { ​​​​int A, sum = 0; // sum 변수를 0으로 초기화 ​​​​scanf("%d", &A); ​​​​ ​​​​for (int i = 1; i <= A; i++) { ​​​​​​​​sum += i; ​​​​} ​​​​printf("%d\n", sum); ​​​​ ​​​​return 0; }

 

 

4. 영수증

a. 문제지  : 25304

 

b. 정답

📚 풀이

#include <stdio.h> int main() { ​​​​int receipt_total, num_items; ​​​​scanf("%d", &receipt_total); // 영수증에 적힌 총 금액 입력 ​​​​scanf("%d", &num_items); // 구매한 물건의 종류의 수 입력 ​​​​int calculated_total = 0; // 구매한 물건들로 계산한 총 금액 초기화 ​​​​for (int i = 0; i < num_items; i++) { ​​​​​​​​int price, quantity; ​​​​​​​​scanf("%d %d", &price, &quantity); // 물건의 가격과 개수 입력 ​​​​​​​​calculated_total += price * quantity; // 가격 * 개수를 총 금액에 더함 ​​​​} ​​​​if (receipt_total == calculated_total) { ​​​​​​​​printf("Yes\n"); // 총 금액이 일치하는 경우 ​​​​} else { ​​​​​​​​printf("No\n"); // 총 금액이 일치하지 않는 경우 ​​​​} ​​​​return 0; }

 

 

5. 코딩은 체육과목 입니다

a. 문제지  : 25314

 

b. 정답

📚 풀이

#include <stdio.h> int main(){ ​​​​int N; ​​​​scanf("%d", &N); ​​​​int A = N/4; ​​​​ ​​​​for(int i=0; i<A; i++){ ​​​​​​​​printf("long "); ​​​​} ​​​​ ​​​​printf("int"); ​​​​ ​​​​return 0; }

 

 

6. 빠른 A+B

a. 문제지  : 15552

 

C로 작성하고 있어서 위 조건이 다 필요없었다,,

 

b. 정답

📚 풀이

#include <stdio.h> int main() { ​​​​int T; ​​​​scanf("%d", &T); // 테스트케이스 개수 입력 ​​​​for (int i = 0; i < T; i++) { ​​​​​​​​int A, B; ​​​​​​​​scanf("%d %d", &A, &B); // 두 정수 A와 B 입력 ​​​​​​​​int sum = A + B; // A와 B의 합을 계산 ​​​​​​​​printf("%d\n", sum); // 합을 출력 ​​​​} ​​​​return 0; }

 

 

7. A+B - 7

a. 문제지  : 11021

 

b. 정답

📚 풀이

#include <stdio.h> int main() { ​​​​int T; ​​​​scanf("%d", &T); // 테스트케이스 개수 입력 ​​​​for (int i = 0; i < T; i++) { ​​​​​​​​int A, B; ​​​​​​​​scanf("%d %d", &A, &B); // 두 정수 A와 B 입력 ​​​​​​​​int sum = A + B; // A와 B의 합을 계산 ​​​​​​​​printf("Case #%d: %d\n", (i+1), sum); // 합을 출력 ​​​​} ​​​​return 0; }

 

 

8. A+B - 8

a. 문제지  : 11022

 

b. 정답

📚 풀이

#include <stdio.h> int main() { ​​​​int T; ​​​​scanf("%d", &T); // 테스트케이스 개수 입력 ​​​​for (int i = 0; i < T; i++) { ​​​​​​​​int A, B; ​​​​​​​​scanf("%d %d", &A, &B); // 두 정수 A와 B 입력 ​​​​​​​​int sum = A + B; // A와 B의 합을 계산 ​​​​​​​​printf("Case #%d: %d + %d = %d\n", (i+1), A, B, sum); // 합을 출력 ​​​​} ​​​​return 0; }

 

 

9. 별 찍기 - 1

a. 문제지  : 2438

 

b. 정답

📚 풀이

#include <stdio.h> int main(){ ​​​​int T; ​​​​scanf("%d", &T); ​​​​ ​​​​for(int i=1; i<=T; i++){ // i는 1부터 시작 ​​​​​​​​for(int j=0; j<i; j++){ ​​​​​​​​​​​​printf("*"); ​​​​​​​​} ​​​​​​​​printf("\n"); ​​​​} ​​​​ ​​​​return 0; }

 

 

10. 별 찍기 - 2

a. 문제지  : 2439

 

b. 정답

📚 풀이

#include <stdio.h> int main(){ ​​​​int T; ​​​​scanf("%d", &T); ​​​​ ​​​​for(int i=1; i<=T; i++){ // i는 1부터 시작 ​​​​​​​​for(int j=1; j<=T; j++){ ​​​​​​​​​​​​if(j <= T - i){ ​​​​​​​​​​​​​​​​printf(" "); // 공백 출력 ​​​​​​​​​​​​} else { ​​​​​​​​​​​​​​​​printf("*"); // 별 출력 ​​​​​​​​​​​​} ​​​​​​​​} ​​​​​​​​printf("\n"); ​​​​} ​​​​ ​​​​return 0; }

 

 

11. A+B - 5

a. 문제지  : 10952

 

b. 정답

📚 풀이

#include <stdio.h> int main() { ​​​​while (1) { ​​​​​​​​int A, B; ​​​​​​​​scanf("%d %d", &A, &B); // A와 B 입력 ​​​​​​​​ ​​​​​​​​if (A == 0 && B == 0) { ​​​​​​​​​​​​break; // 입력 종료 조건: A와 B가 모두 0이면 종료 ​​​​​​​​} ​​​​​​​​int sum = A + B; // A와 B의 합 계산 ​​​​​​​​printf("%d\n", sum); // 합을 출력 ​​​​} ​​​​return 0; }

 

 

12. A+B - 4

a. 문제지  : 10951

 

b. 알고리즘

C에선 입력이 끝나면 EOF를 반환한다는 것을 이용한 코드!

 

  1. 두 개의 정수 a와 b를 저장할 변수를 선언
  2. 무한 루프를 시작
  3. scanf 함수를 사용하여 두 정수 a와 b를 입력
  4. 입력이 끝나면 EOF 값을 반환하며 루프가 종료
  5. 입력받은 두 정수 a와 b의 합을 계산
  6. 계산된 합을 출력
  7. 루프를 반복
  8. 프로그램 종료

 

c. 정답

📚 풀이

#include <stdio.h> int main(void) { ​​​​int a,b; ​​​​while(scanf("%d %d", &a, &b)!=EOF) { ​​​​​​​​printf("%d\n", a+b); ​​​​} }