본문 바로가기
728x90
반응형

분류 전체보기301

avoidObstacles 일직선 상에 위치한 장애물들을 나타냅니다. 0 좌표에서 오른쪽으로 점프를 하고, 점프 길이는 어떤 정수로도 표현될 수 있습니다. 이때, 모든 장애물을 피하기 위해 필요한 최소한의 점프 길이를 찾아야 합니다. 예를 들어, inputArray = [5, 3, 6, 7, 9]라면, 장애물을 피하기 위한 최소한의 점프 길이는 4입니다. int solution(int[] inputArray) { Array.Sort(inputArray); for(int i = 1;i 2023. 12. 12.
arrayMaximalAdjacentDifference 주어진 정수 배열에서 인접한 두 요소 간의 최대 절대 차이를 찾는 문제입니다. 즉, 배열에서 연이은 두 요소를 선택하여 그 차이의 절대값이 최대가 되는 경우를 찾아야 합니다. int solution(int[] inputArray) { int max = 0; for(int i = 1;i max){ max = Math.Abs(inputArray[i-1]-inputArray[i]); } if(Math.Abs(inputArray[i+1]-inputArray[i]) > max){ max = Math.Abs(inputArray[i+1]-inputArray[i]); } } return max; } max 변수를 초기화합니다. 이 변수는 현재까지 찾은 최대 절대 차이를 저장합니다. 배열을 인덱스 1부터 시작하여 끝에서.. 2023. 12. 11.
isIPv4Address 주어진 문자열이 IPv4 주소의 규칙을 따르는지 확인하는 문제입니다. IPv4 주소는 다음과 같은 규칙을 갖습니다: 0부터 255 사이의 숫자로 구성된 4개의 숫자 그룹으로 이루어져야 합니다. 숫자와 숫자 사이에는 마침표(".")가 있어야 합니다. 각 숫자는 0으로 시작하지 않아야 합니다. 주어진 예시와 규칙을 고려하여 주어진 문자열이 IPv4 주소의 조건을 만족하는지 확인하는 함수를 작성해야 합니다. bool solution(string inputString) { string[] inputArr = inputString.Split("."); if(inputArr.Length != 4) return false; for(int i = 0;i 255) return false; if(outVal < 10 &&.. 2023. 12. 10.
areEquallyStrong 두 사람의 팔 강도가 주어졌을 때, 두 사람이 팔의 힘이 서로 같은지를 판단하는 문제입니다. 여기서 "힘이 같다"는 것은 두 사람 중 하나의 최대 힘이 다른 사람의 최대 힘과 같고, 최소 힘이 다른 사람의 최소 힘과 같다는 것을 의미합니다. bool solution(int yourLeft, int yourRight, int friendsLeft, int friendsRight) { int yourMax = Math.Max(yourLeft,yourRight); int yourMin = Math.Min(yourLeft,yourRight); int friendsMax = Math.Max(friendsLeft,friendsRight); int friendsMin = Math.Min(friendsLeft,frie.. 2023. 12. 10.
palindromeRearranging 주어진 문자열을 재배열하여 팰린드롬을 형성할 수 있는지 확인하는 문제입니다. 예를 들어, "aabb" 문자열은 "abba"로 재배열하여 팰린드롬을 형성할 수 있습니다. 따라서 이 경우에는 함수가 true를 반환해야 합니다. 팰린드롬은 앞으로 읽어도 뒤로 읽어도 동일한 문자열을 말합니다. 문제에서는 문자열을 재배열하여 팰린드롬을 만들 수 있는지를 확인하라고 명시하고 있습니다. bool solution(string inputString) { Dictionary dic = new Dictionary(); foreach(char c in inputString){ if(dic.ContainsKey(c)){ dic[c]++; } else dic[c] = 1; } int oddCount = 0; foreach(var.. 2023. 12. 10.
arrayChange 주어진 배열에서 각 요소를 증가시켜서(strictly increasing sequence) 증가 수열을 만들기 위해 필요한 최소 이동 횟수를 찾는 문제입니다. 여기서 "strictly increasing sequence"는 배열의 모든 요소가 바로 앞의 요소보다 크다는 것을 의미합니다. 예를 들어, 배열이 [1, 1, 3, 2]인 경우, 이 배열을 증가 수열로 만들기 위해 다음과 같이 이동할 수 있습니다: 두 번째 요소를 2로 증가: [1, 2, 3, 2] 네 번째 요소를 3으로 증가: [1, 2, 3, 3] 결과적으로 [1, 2, 3, 3]은 증가 수열이 됩니다. 최소 이동 횟수는 2입니다. 이 문제의 목표는 최소 이동 횟수를 찾아내는 것입니다. int solution(int[] inputArray) .. 2023. 12. 9.
Are Similar? 두 개의 배열 a와 b가 주어졌을 때, 두 배열이 서로 교환을 통해 동일하게 만들 수 있는지 여부를 판단하는 것입니다. 여기서 "교환"이라 함은 두 배열에서 하나의 원소 쌍을 선택하고 위치를 바꾸는 것을 의미합니다. 두 배열이 유사하려면 다음의 세 가지 조건 중 하나가 성립해야 합니다: 두 배열이 동일한 경우. 두 배열에서 위치가 다른 두 원소를 하나씩 선택하여 위치를 바꿀 경우, 그 결과 두 배열이 동일해야 함. 따라서 두 배열이 유사한지 확인하기 위해서는 다음과 같은 절차를 따릅니다: bool solution(int[] a, int[] b) { if(a.SequenceEqual(b)) return true; List diffIdx = new List(); for(int i = 0;i 2023. 12. 6.
728x90
반응형