본문 바로가기
CodeSignal

deleteDigit

by Doromi 2024. 1. 6.
728x90
반응형

주어진 양의 정수에서 하나의 숫자를 삭제했을 때 얻을 수 있는 가장 큰 값을 찾는 문제입니다.

int solution(int n) {
    char[] digits = n.ToString().ToCharArray();
    int maxVal = 0;

    for (int i = 0; i < digits.Length; i++) {
        char[] tempDigits = new char[digits.Length - 1];
        Array.Copy(digits, 0, tempDigits, 0, i);
        Array.Copy(digits, i + 1, tempDigits, i, digits.Length - i - 1);

        int tempVal = int.Parse(new string(tempDigits));
        maxVal = Math.Max(maxVal, tempVal);
    }

    return maxVal;
    }
for 루프는 digits 배열의 각 자릿수를 하나씩 탐색합니다. 각 자릿수를 제거하고 남은 숫자를 계산하기 위해 다음과 같은 작업을 수행합니다.

tempDigits 배열을 생성하여 현재 자릿수를 제거한 배열을 만듭니다. 이 때, Array.Copy 메서드를 사용하여 배열의 일부를 복사합니다.
tempDigits 배열을 문자열로 변환하고 int.Parse를 사용하여 정수로 변환합니다. 이렇게 하면 현재 자릿수가 제거된 숫자가 됩니다.
현재까지의 최대값 maxVal과 비교하여 더 큰 경우 maxVal을 업데이트합니다.
이렇게 각 자릿수를 하나씩 제거하고 남은 숫자 중에서 최대값을 찾아내는 작업을 for 루프를 통해 수행합니다. 최종적으로 maxVal에는 모든 자릿수를 하나씩 제거하면서 얻은 숫자 중 가장 큰 값이 저장되게 됩니다.

 

728x90
반응형

'CodeSignal' 카테고리의 다른 글

Valid Time  (1) 2024.01.07
longestWord  (0) 2024.01.07
chessKnight  (0) 2024.01.05
lineEncoding  (0) 2024.01.04
Is MAC48 Address?  (0) 2024.01.03