백준 단계별로 풀어보기(C++)/4)1차원 배열
백준 3052) 나머지 (C++)
코테
2023. 3. 12. 17:52
전체 코드
#include <iostream>
int main()
{
int arr[42] = { 0, };
int num, result = 0;
for (int i = 0; i < 10; i++)
{
std::cin >> num;
arr[num % 42]++;
}
for (int i = 0; i < 42; i++)
{
if (arr[i] != 0)
result++;
}
std::cout << result;
}
풀이
- 인덱스 42로 선언 : 0부터 41까지 이용 가능
- 각 인덱스 값 : 인덱스를 나머지랑 같다고 가정할떄 해당 나머지의 개수
- 전체 0으로 초기화
int arr[42] = { 0, };
- 10번 반복하는 반복문 : 수를 10번 입력받는다고 미리 정해져 있기 떄문에 10번 반복하게 함
- 수를 입력받음
- 수를 42로 나눈뒤 나머지값을 인덱스값으로 하여 해당 인덱스값에 1을 더함
for (int i = 0; i < 10; i++)
{
std::cin >> num;
arr[num % 42]++;
}
- 42번 반복하는 반복문 : arr배열 전체를 1개씩 검사하기 위해서 만듦
- 만약 검사하는 배열값이 0이 아니라면(=해당 나머지값이 존재함) result값을 1 더함
- result값 출력
for (int i = 0; i < 42; i++)
{
if (arr[i] != 0)
result++;
}
std::cout << result;