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 |