개발자 톡

연습문제 톡 진정한 효도

C초보가 복잡하게 푼 C언어 코드 공유합니다.. 간단하게 할 방법 있으면 공유해쥬세요,,

등록일
2024-03-16 15:17:55
조회수
283
작성자
yeinseo1142

#include <stdio.h>

#include <stdlib.h>


int main(void)

{

  int one[3]={0,0,0},two[3]={0,0,0},three[3]={0,0,0};

  int num[3]={0,0,0};

  int min=0;

  scanf("%d %d %d",&one[0],&one[1],&one[2]);

  scanf("%d %d %d",&two[0],&two[1],&two[2]);

  scanf("%d %d %d",&three[0],&three[1],&three[2]);


  for(int i=0;i<3;i++){

    if (one[i]==two[i]&&two[i]==three[i]&&one[i]==three[i]){

      num[i]=0;

    }

    else{

      int a=one[i],b=two[i],c=three[i];


      if(a!=c)num[i] = abs(a - b) + abs(b - c);

      else num[i] = abs(a-b);

    }

  }

  for(int i=0;i<2;i++){

    if(num[i]<=num[i+1]) min=num[i];

    else min=num[i+1];

  }

  if (num[2]<num[0]) min=num[2];

  else min=num[0];

  if (one[0]==one[1]&&one[1]==one[2]) num[0]=0;

  else{

    int a=one[0],b=one[1],c=one[2];

    if(a!=c)num[0] = abs(a - b) + abs(b - c);

    else num[0] = abs(a-b);

  }

  if (two[0]==two[1]&&two[1]==two[2]) num[1]=0;

  else{

    int a=two[0],b=two[1],c=two[2];

    if(a!=c)num[1] = abs(a - b) + abs(b - c);

    else num[1] = abs(a-b);

  }

  if (three[0]==three[1]&&three[1]==three[2]) num[2]=0;

  else{

    int a=three[0],b=three[1],c=three[2];

    if(a!=c)num[2] = abs(a - b) + abs(b - c);

    else num[2] = abs(a-b);

  }

  for(int i=0;i<2;i++){

    if(num[i]<num[i+1]&&min>num[i]) min=num[i];

    else if(min>num[i+1]) min=num[i+1];

  }

  printf("%d",min);

  return 0;

}

#진정한_효도

이 카테고리의 톡 더보기