백준(C언어)/22년 7월
7월 15일(금) - 4단계(3052번)
C0MPAS
2022. 7. 16. 23:24
4단계 - 3052번
3052번: 나머지
각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.
www.acmicpc.net
문제점
1. 두 번의 for문을 모두 int i 로 시작하려다가 꼬임
-> 1) int i , 2) int k 로 설정
2. count 변수만을 사용해서 풀이하다보니 중간에 막힘
-> count 뿐만 아니라 difference까지 추가로 선언해야 깔끔하게 풀이가능
3. count 변수가 0으로 초기화되지 않고, difference 변수의 값도 생각한 범위 밖으로 값이 튀어버림
-> int k로 쓰는 for문 안에 int count=0; 넣어서 k를 이용한 반복문 실행마다 0으로 초기화해야
difference 또한 제대로 카운팅이 가능해짐
풀이
#include <stdio.h>
int main(void)
{
int array[10];
int count = 0;
int difference = 0;
for (int i = 0; i < 10; i++)
{
scanf("%d", &array[i]);
array[i] = array[i] % 42;
}
for (int k = 0; k < 10; k++)
{
int count = 0;
for (int j = k+1; j < 10; j++)
{
if (array[k] == array[j])
{
++count;
}
}
if (count == 0)
{
++difference;
}
}
printf("%d", difference);
return 0;
}