C언어/문제은행

[2주차] Challenge - sorting and counting

슈슈버거 2023. 4. 18. 15:37

문제


내가 작성한 코드

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

int main() {
    char word[100];

    scanf("%s", word);
    int len = strlen(word);
    
    int num[len];
    int sum=0;

    for(int i = 0; i<len; i++){
        num[i] = word[i];
        if(num[i]>=65 && num[i]<=90){
            sum += num[i]-64;
        }
        else{
            sum += num[i]-70;
        }
    }

    for(int i = 0; i<len-1; i++){
        for(int j = 0; j<len-1-i; j++){
            if(num[j]>num[j+1]){
            int fake = num[j];
            num[j] = num[j+1];
            num[j+1] = fake;
        }
        }
    }

    for(int i = 0; i<len; i++){
        printf("%c", num[i]);
    }
    printf("\n");
    printf("%d\n", sum);

    return 0;
}

 

오....처음으로 긴 코드다 역시 Challenge 인건가...

C언어는 java랑 다르게 string형이 없어서 문자열을 입력받으려면 char word[]이런 식으로 배열을 만들어주어야 하더라

받고 strlen을 이용해서 문자열 길이 구하고 그 길이만큼의 int형 배열을 만들어주었다

 

그런 다음에 char 배열에 있는 아이들을 asci 코드를 이용해서 수로 변환 시키는 for문 하나

수를 크기를 비교하며 하나하나 자리 바꾸는 for문 하나

int 배열의 값을 출력하는 for문 하나

 

총 3개의 for문을 사용했다

 

그런 다음 개행 한 번 해주고 숫자 총합도 출력해주었다.

'C언어 > 문제은행' 카테고리의 다른 글

[3주차] 최대공약수와 최소공배수 구하기  (0) 2023.04.19
[3주차] "Hello, World!" in C  (0) 2023.04.19
[2주차] 별찍기  (0) 2023.04.18
[2주차] 16진수 덧셈  (0) 2023.04.18
[2주차] 10진수 정수 16진수 출력  (0) 2023.04.18