본문 바로가기

BAEKJOON/수학

백준 2475번 [검증수](C++)-yes6686- 티스토리

728x90
SMALL

백준 문제 풀이: 2475 [검증수]


문제 링크: https://www.acmicpc.net/problem/2475

문제 설명:

5개의 자연수가 주어졌을 때, 각 숫자를 제곱한 뒤 모두 더한 값을 10으로 나눈 나머지를 구하는 프로그램을 작성하세요.

입력 조건:

  • 첫째 줄에 5개의 자연수가 주어집니다. (0 ≤ 숫자 ≤ 9)

출력 조건:

  • 검증수를 출력합니다.

문제 해결 코드


#include <iostream>
using namespace std;

int main() {
    int arr[5]; // 5개의 숫자를 저장할 배열
    for (int i = 0; i < 5; i++) {
        cin >> arr[i]; // 배열 입력
    }

    int sum = 0;
    for (int i = 0; i < 5; i++) {
        sum += arr[i] * arr[i]; // 각 숫자의 제곱을 더함
    }

    cout << sum % 10 << endl; // 합을 10으로 나눈 나머지 출력
    return 0; // 프로그램 정상 종료
}

코드 설명

위 코드는 주어진 5개의 숫자에 대해 검증수를 계산하고 출력합니다.

  • 입력 처리:
    • `arr` 배열을 사용하여 5개의 숫자를 입력받습니다.
  • 검증수 계산:
    • 각 숫자를 제곱한 값을 `sum`에 누적합니다.
    • `sum % 10`을 계산하여 검증수를 구합니다.
  • 출력:
    • 검증수를 출력합니다.

시간 복잡도 분석:

  • 입력: 5개의 숫자를 입력받는 데 O(5).
  • 계산: 5개의 숫자를 제곱하고 더하는 데 O(5).

따라서 전체 시간 복잡도는 O(1)로 상수 시간입니다.


결과

다음은 입력 예시와 출력 결과입니다:

입력:
1 2 3 4 5

출력:
5

위 입력에서는 (1² + 2² + 3² + 4² + 5²) % 10 = 5가 됩니다.

다른 접근 방식이나 개선 사항이 있다면 댓글로 공유 부탁드립니다!

728x90
LIST