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;
}
'백준(C언어) > 22년 7월' 카테고리의 다른 글
7월 17일(일) - 4단계(8958번) (0) | 2022.07.17 |
---|---|
7월 13일(수) - 4단계(10818번 , 2562번 , 2577번) (0) | 2022.07.16 |
7월 16일(토) - 4단계(1546번) (0) | 2022.07.16 |
7월 11일(월)~7월 12일(화) - 3단계 (0) | 2022.07.14 |
7월 6일(수)~7월 8일(금) - 1단계 , 2단계 (0) | 2022.07.14 |
댓글