[TIL]20210711

박창현·2021년 7월 12일
0

TODAY I LEARNED

목록 보기
13/53

알고리즘

백준3052번(나머지)

조건
1. 수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다.
2. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.

1번구현은 쉬웠으나 2번구현은 생각이 쉽사리 나지 않았다.

#include <stdio.h>
int main()
{
  //1.
  int inp1,inp2,inp3,max=0,inp[10]={0},res[10]={0},num=0,result;
  for (int i=0;i<10;i++){
    scanf("%d",&inp[i]);
    res[i]=inp[i]%42;
  }
  //2.
  for (int i =0; i<10;i++){
    int count=0;
    for (int j=0;j<i;j++){
      if (res[i]==res[j]){
        count++;
      }
    }
    if (count==0){
      num++;
    }
  }
  printf("%d",num);
}

2번의 로직은 i와 j를 통해 배열에 두 값이 같으면 count를 올린다. count가 0인 경우는 중복되는 숫자가 없다는 것을 뜻함으로 num을 1씩 더한다.

profile
개강했기에 가끔씩 업로드.

0개의 댓글