반응형

0을 삭제하는 부분이 조금 어려웠다.

 

C언어

#include <stdio.h>
 
int main() {
    int inputNumber;
    scanf("%d"&inputNumber);
    int temp = inputNumber;
    int digit = 0, rem = 0, sum = 0// digit : 입력한 숫자의 자릿수를 저장하는 변수
    
    while(temp>0){ // 입력한 숫자가 몇 자리수인지 판단하는 코드
        digit++;
        temp /= 10;
    }
    
    int digit2 = digit; // 입력한 숫자를 뒤집은 숫자의 자릿수를 저장하는 변수
    
    for(int i=0; i<digit; i++){
        if(inputNumber % 10 == 0){
            digit2--;
            inputNumber = inputNumber/10;
        }else{
            int result = inputNumber;
            for(int i=0; i<digit2; i++){
                rem = result % 10;
                result = result / 10;
                sum += rem;
                printf("%d", rem);
            }
            printf("\n");
            printf("%d\n", sum);
            break;
        }
    }
    return 0;
}
 
 
반응형
반응형

버블정렬 사용하면 쉽게 풀 수 있는 문제.

 

C언어

#include <stdio.h>
 
int main() {
    int students;
    scanf("%d"&students);
    int score[students];
    
    for(int i=0; i<students; i++){
        scanf("%d"&score[i]);
    }
    for(int i=0; i< students-1; i++){
        for(int j=0; j< students-1;j++){
            if(score[j] > score[j+1]){
                int temp;
                temp = score[j];
                score[j] = score[j+1];
                score[j+1= temp;
            }
        }
    }
    printf("%d\n", score[students-1]-score[0]);
    return 0;
}
 
반응형
반응형

C언어

#include <stdio.h>
 
int main() {
    int first, second;
    scanf("%d %d"&first, &second);
 
    int a = (first+second) / 2;
    int b = (first-second) / 2;
    
    printf("%d\n%d\n", a, b);
    return 0;
}
r
반응형
반응형

간단한 문제.

 

C언어

#include <stdio.h>
 
int main(){
    int inputNumber[7];
    int maxEvenNumber = 0, maxOddNumber = 0;
    for(int i=0; i<sizeof(inputNumber)/sizeof(int); i++){
        scanf("%d"&inputNumber[i]);
        if(inputNumber[i] % 2 == 0){ // 짝수
            if(inputNumber[i] > maxEvenNumber){
                maxEvenNumber = inputNumber[i];
            }
        }else// 홀수
            if(inputNumber[i] > maxOddNumber){
                maxOddNumber = inputNumber[i];
            }
        }
    }
    
    printf("%d\n", maxEvenNumber+maxOddNumber);
    
    return 0;
}
 
반응형
반응형

중앙 값 찾는 문제. 버블 정렬을 사용하면 쉽게 문제를 해결할 수 있다. 버블 정렬 후 두 번째 인덱스에 있는 값이 정답.

 

C언어

#include <stdio.h>
 
int main(){
    int num[5];
    int arrSize = sizeof(num)/sizeof(int);
    
    for(int i=0; i<arrSize; i++){
        scanf("%d"&num[i]);
    }
    
    for(int i=0; i<arrSize-1; i++){
        for(int j=0 ;j<arrSize-1; j++){
            if(num[j] > num[j+1]){
                int temp;
                temp = num[j];
                num[j] = num[j+1];
                num[j+1= temp;
            }
        }
    }
    
    printf("%d\n", num[2]);
    
    return 0;
}
반응형
반응형

상당히 빨리 해결했다.

마지막 조건문의 sum == 0 이라는 의미는 for문 안에 있는 if문이 한번도 실행되지 않았다는 의미이므로 입력된 모든 수가 짝수였다는 것을 알 수 있다.

C언어

 
#include <stdio.h>
 
int main(){
    int num[7];
    int sum = 0;
    
    for(int i=0; i<sizeof(num)/sizeof(int); i++){
        scanf("%d"&num[i]);
        if(num[i] % 2 == 1){
            sum += num[i];
        }
    }
    
    if(sum == 0){ 
        printf("%d\n"-1);
    }else{
        printf("%d\n", sum);
    }
    
    return 0;
}
 
반응형
반응형

C언어

 
#include <stdio.h>
 
int main(){
    char privateNumber[15]; // 주민등록번호 저장
    int birth[4]; // birth[0] : 년, birth[1] : 월, birth[2] : 일, birth[3] : 성별
    char gender; // // 성별
    
    scanf("%s", privateNumber);
    birth[3= privateNumber[7]-48;
    
    for(int i=0; i<3; i++){
        birth[i] = ((privateNumber[i*2]-48* 10+ (privateNumber[i*2+1- 48);
    }
    
    if(birth[3== 1 || birth[3== 3){ // 1 or 3일 경우 남자
        gender = 'M';
    }else// 아니면 여자
        gender = 'F';
    }
    
    printf("19%02d/%02d/%02d %c\n", birth[0], birth[1], birth[2], gender);
    
    return 0;
}
 
반응형
반응형

C언어

#include <stdio.h>
 
int stack[100000];
int cnt = 0, sum = 0;
 
void push(int n){
    if(cnt<100000){
        stack[cnt] = n;
        sum += stack[cnt];
        cnt++;
    }
}
void pop(){
    if(cnt!=0){
        cnt--;
        sum -= stack[cnt];
        stack[cnt] = 0;
    }
}
 
int main(){
    int inputNumber;
    scanf("%d"&inputNumber);
    int arr[inputNumber];
    for(int i=0; i<inputNumber; i++){
        scanf("%d"&arr[i]);
        if(arr[i] == 0){
            pop();
        }else{
            push(arr[i]);
        }
    }
    printf("%d\n", sum);
}

C++

#include <iostream>
#include <stack>
 
using namespace std;
 
int main(){
    stack<int> s;
    int inputNumber;
    cin >> inputNumber;
    int arr[inputNumber];
    int sum = 0;
    for(int i=0; i<inputNumber; i++){
        cin >> arr[i];
        if(arr[i] == 0){
            sum -= s.top();
            s.pop();
        }else{
            s.push(arr[i]);
            sum += s.top();
        }
    }
    cout << sum << endl;
    
    return 0;
}
 
반응형
반응형
#include <stdio.h>
 
int main(){
    int inputNumber;
    scanf("%d"&inputNumber);
    int arr[inputNumber];
    for(int i=0; i<inputNumber; i++){
        scanf("%d"&arr[i]);
    }
    
    for(int i=0; i<inputNumber; i++){
        printf("%d: ", i+1);
        for(int j=0; j<inputNumber; j++){
            if(i==j){
                continue;
            }
            if(arr[i] > arr[j]){
                printf("> ");
            }else if(arr[i] < arr[j]){
                printf("< ");
            }else{
                printf("= ");
            }
        }
        printf("\n");
    }
    return 0;
}
 
반응형
반응형
#include <stdio.h>
 
int arr[10000000= {0};
 
int main(){
    
    int num, firstNumber;
    scanf("%d"&firstNumber);
    for(int i=0; i<firstNumber; i++){
        scanf("%d"&num);
        arr[num] = 1;
    }
    
    int secondNumber;
    scanf("%d"&secondNumber);
    for(int i=0; i<secondNumber; i++){
        scanf("%d"&num);
        printf("%d ", arr[num]);
    }
    return 0;
}
 
반응형

+ Recent posts