Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

PL/SQL로 숫자의 첫 자릿수와 마지막 자릿수 합 구하는 방법

문제 개요

이 문제에서는 하나의 숫자 n이 주어집니다. 우리의 과제는 PL/SQL을 사용하여 이 숫자의 첫 번째 자릿수와 마지막 자릿수의 합을 구하는 프로그램을 작성하는 것입니다.

해결 방법을 살펴보기 전에, PL/SQL에 대해 간단히 정리하고 넘어가겠습니다.

PL/SQL이란?

PL/SQL은 SQL과 프로그래밍 언어의 절차적 기능을 결합한 언어입니다. 일반적인 SQL 쿼리만으로는 구현하기 어려운 변수 선언, 조건 분기, 반복 처리 같은 로직을 데이터베이스 내부에서 직접 수행할 수 있도록 도와줍니다.

문제 이해하기

예시를 통해 문제를 좀 더 명확하게 이해해 보겠습니다.

  • 입력: n = 31415
  • 출력: 8
  • 설명: 첫 번째 자릿수 = 3, 마지막 자릿수 = 5, 따라서 합계 = 8

해결 접근 방법

이 문제를 해결하려면 숫자 n에서 첫 번째 자릿수와 마지막 자릿수를 추출한 뒤, 두 값을 더해 출력하면 됩니다.

자릿수 추출에는 SUBSTR() 함수를 사용합니다. 첫 번째 자릿수는 문자열의 첫 문자에서, 마지막 자릿수는 문자열 길이를 이용해 마지막 문자에서 가져올 수 있습니다. 참고로 SUBSTR() 함수는 문자열에 적용되므로, 숫자는 먼저 TO_CHAR() 함수로 문자열로 변환한 후 처리하는 것이 좋습니다.

예제 코드

다음은 위 해결 방법의 동작을 보여주는 프로그램입니다.

DECLARE
    n INTEGER := 31415;
    str VARCHAR2(20);
    firstDigit INTEGER := 0;
    lastDigit INTEGER := 0;
    s INTEGER;
BEGIN
    IF n > 9 THEN
        str := TO_CHAR(n);
        firstDigit := SUBSTR(str, 1, 1);
        lastDigit := SUBSTR(str, LENGTH(str), 1);
        s := firstDigit + lastDigit;
    ELSE
        s := n;
    END IF;
    DBMS_OUTPUT.PUT_LINE('숫자의 첫 번째 자릿수와 마지막 자릿수의 합은 ' || s);
END;
-- 프로그램 종료

출력 결과

숫자의 첫 번째 자릿수와 마지막 자릿수의 합은 8

코드 설명

코드의 동작 흐름은 다음과 같습니다.

  1. 먼저 숫자 n이 한 자리 수인지 확인합니다. 한 자리 수라면 첫 자릿수와 마지막 자릿수가 같으므로 그 값 자체가 곧 합이 됩니다.
  2. 두 자리 이상의 숫자라면 TO_CHAR()로 문자열로 변환한 뒤, SUBSTR(str, 1, 1)로 첫 번째 자릿수를, SUBSTR(str, LENGTH(str), 1)로 마지막 자릿수를 각각 추출합니다.
  3. 두 자릿수를 더한 값을 변수 s에 저장하고, DBMS_OUTPUT.PUT_LINE을 통해 결과를 출력합니다.

이처럼 PL/SQL의 문자열 함수와 조건문을 활용하면 자릿수 연산을 손쉽게 처리할 수 있습니다.