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

[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);
    }
}