ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 4주차 미션 2
    개인 공부/코딩뉴비 챌린지 2020. 8. 4. 16:11
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    #include <stdio.h>
    #include <math.h>
    #define NUM 4
     
    int main(){
        int number[NUM] = {2224};
        int aver, i, j;
        int min = 0// 최단 거리의 합
        int sum = 0// 거리의 합 계산용
        int min_num; // 최단 거리가 되는 위치
     
     
        aver = (number[0+ number[NUM-1]) / 2;
        min_num = aver; // 최단 거리가 되는 위치를 가장 끝에 있는 두 좌표의 중간값으로 가정
        
     
        for (i = 0; i < NUM; i++){ // 중간값의 각 좌표로부터의 거리 합 계산
            min += abs(aver - number[i]);
        }
     
        for (i = aver-1; i >= 0; i--){ // 0 ~ 중간값 바로 이전 좌표의 거리의 합 검사
            for (j = 0; j < NUM; j++){
                sum += abs(i - number[j]);
            }
            if (sum > min) // 만약 거리의 합이 현재 최단 거리의 합보다 크다면 바로 검사를 중단함
                break;
            else {
                min = sum; // 거리의 합이 현재 최단 거리의 합보다 작거나 같다면 그 값이 최단 거리의 합이 됨.
                min_num = i; // 최단 거리가 되는 좌표 값 변경
            }
            
            sum = 0// sum 값 초기화
        }
     
        for (i = aver+1; i <= number[NUM-1]; i++){ // 중간값 바로 뒤 ~ 가장 마지막 좌표의 거리의 합 검사
            for (j = 0; j < NUM; j++){ // 이후 방법은 위와 동일함
                sum += abs(i - number[j]);
            }
            if (sum > min)
                break;
            else {
                min = sum;
                min_num = i;
            }
            sum = 0;
        }
     
        printf("%d\n", min_num); // 최단 거리가 되는 좌표 값 출력
     
    }
     
     
     
    cs

    힌트나 구글링 도움 없이 온전히 내 머리로만 풀어본 문제!

    그래서 잘 짰는지는 모르겠다.. ㅎㅎ;; 그리고 알고리즘 실행 시간 구하는 것도 갑자기 헷갈린다. 복습 좀 해야지.. 으악!!

    '개인 공부 > 코딩뉴비 챌린지' 카테고리의 다른 글

    6주차 미션 - 1  (0) 2020.08.19
    4주차 미션 1  (0) 2020.08.04
    3주차 미션 - 문제 3  (0) 2020.07.30
    3주차 샘플 문제  (0) 2020.07.28

    댓글

Designed by Tistory.