본문 바로가기
728x90
반응형

CodeSignal66

Almost Increasing Sequence 주어진 배열에서 하나의 원소를 제거하여 배열을 증가 수열로 만들 수 있는지 여부를 확인하는 문제입니다. 여기서 증가 수열은 배열의 모든 원소가 비감소하는 수열을 말합니다. 예를 들어, [1, 3, 2, 1] 배열이 주어졌을 때, 한 개의 원소를 제거하여 [1, 3, 1]로 만들면 증가 수열이 됩니다. 따라서 이 문제에서는 한 개의 원소를 제거하면서 증가 수열을 만들 수 있는지 여부를 판단해야 합니다. 이 문제를 해결하는 알고리즘은 다양할 수 있으며, 주로 배열을 순회하면서 현재 원소와 다음 원소를 비교하면서 적절한 조치를 취하는 방식을 사용합니다. 다양한 조건을 고려하여 문제를 해결하는 것이 중요합니다. public class Solution { public bool AlmostIncreasingSequ.. 2023. 11. 25.
Make Array Consecutive 2 주어진 정수 배열을 정렬하고, 배열 안의 연속된 숫자 사이에 빈 공간이 있을 때, 이 빈 공간을 채우기 위해 필요한 추가적인 숫자의 개수를 구하는 문제입니다. 예를 들어, 주어진 배열이 [6, 2, 3, 8]이라면, 이 배열을 정렬하면 [2, 3, 6, 8]이 됩니다. 그런데 3 다음에 4와 5가 빈 공간으로 존재하고, 6과 8사이에 7의 빈 공간이 존재하므로, 최소 3개의 추가 숫자가 필요합니다. 따라서 이 문제는 정렬된 배열에서 숫자들 사이의 갭을 계산하여 필요한 추가 숫자의 수를 구하는 것이 목표입니다. int solution(int[] statues) { Array.Sort(statues); int start = statues[0]; int cnt = 0; int idx = 1; for(int i.. 2023. 11. 22.
firstDuplicate 배열 a에 있는 숫자 중에서 두 번 이상 나타난 숫자 중에서, 두 번째 등장한 순서의 인덱스가 최소인 숫자를 찾는 문제입니다. 예를 들어, 주어진 배열이 [2, 1, 3, 5, 3, 2]인 경우: 2는 두 번 등장했지만 두 번째 등장한 2의 인덱스는 5이므로 고려하지 않습니다. 1은 한 번만 등장하므로 고려하지 않습니다. 3은 두 번 등장하고, 두 번째 등장한 3의 인덱스는 4입니다. 5는 한 번만 등장하므로 고려하지 않습니다. 따라서 이 경우에는 3이 문제의 답이 됩니다. 각 경우에 대해 어떤 숫자가 두 번 이상 나타났고, 그 중 두 번째 등장한 인덱스가 최소인지 확인하면서 답을 찾을 수 있습니다. 만약 그러한 숫자가 없다면 -1을 반환합니다. int solution(int[] a) { Dictiona.. 2023. 11. 17.
728x90
반응형