목록코딩 테스트 (165)
개발 일지

2D 정수 배열 nums가 주어지면 아래 이미지와 같이 대각선 순서로 nums의 모든 요소를 반환합니다. 예시 1:입력: nums = [[1,2,3],[4,5,6],[7,8,9]]출력: [1,4,2,7,5,3,8,6,9] 예시 2:입력: nums = [[1,2,3,4,5],[6,7],[8],[9,10,11],[12,13,14,15,16]]출력: [1,6,2,8,7,3,9,4,12,10,5,13,11,14,15,16] 조건:1 1 1 1 정답:public class Solution { public int[] FindDiagonalOrder(IList> nums) { List> tuples = new List>(); List result = new List(); ..
고유한 정수 salary 배열이 주어지는데, 여기서 salary[i]는 i^th 직원의 급여입니다. 최소 및 최대 급여를 제외한 직원의 평균 급여를 반환합니다. 실제 답변의 10^-5 이내의 답변은 수락됩니다. 예시 1:입력: salary = [4000,3000,1000,2000]출력: 2500.00000설명: 최소 급여와 최대 급여는 각각 1000달러와 4000달러입니다.최저 및 최대 급여를 제외한 평균 급여는 (2000+3000) / 2 = 2500입니다 예시 2:입력: salary = [1000,2000,3000]출력: 2000.00000설명: 최소 급여와 최대 급여는 각각 1000달러와 3000달러입니다.최저 및 최대 급여를 제외한 평균 급여는 (2000) / 1 = 2000입니다 조건:3 sa..
이진 문자열 s가 주어지면 모든 문자가 1인 서브스트링의 수를 반환합니다. 답이 너무 클 수 있으므로 모듈로 10^9 + 7로 반환합니다. 예시 1:입력: s = "0110111"출력: 9설명: 1의 캐릭터만 있는 서브스트링은 총 9개입니다."1" -> 5회."11" -> 3회."111" -> 1회. 예시 2:입력: s = "101"출력: 2설명: 부분 문자열 "1"이 s에 2번 표시됩니다. 예시 3:입력: s = "111111"출력: 21설명: 각 하위 문자열에는 1의 문자만 포함됩니다. 조건:1 s[i]는 '0' 또는 '1'입니다. 정답:public class Solution { public int NumSub(string s) { long result = 0; stri..
정수 배열 nums가 주어집니다. 다음 조건을 충족하는 nums로 2D 배열을 만들어야 합니다:2D 배열에는 배열 nums의 요소만 포함되어야 합니다.2D 배열의 각 행에는 고유한 정수가 포함되어 있습니다.2D 배열의 행 수는 최소이어야 합니다.결과 배열을 반환합니다. 답이 여러 개인 경우 그 중 하나를 반환합니다.2D 배열에는 각 행에 다른 수의 요소가 있을 수 있습니다. 예시 1:입력: nums = [1,3,4,1,2,3,1]출력: [[1,3,4,2],[1,3],[1]]설명: 다음 행이 포함된 2D 배열을 만들 수 있습니다:- 1,3,4,2- 1,3- 1모든 숫자 요소가 사용되었으며 2D 배열의 각 행에는 고유한 정수가 포함되므로 유효한 답입니다.유효한 배열에 3개 미만의 행을 가질 수 없음을 알 수..
정수 배열 nums가 주어지면 배열 시작 부분의 모든 짝수 정수를 이동한 다음 모든 홀수 정수를 이동합니다.이 조건을 충족하는 배열을 반환합니다. 예시 1:입력: nums = [3,1,2,4]출력: [2,4,3,1]설명: [4,2,3,1], [2,4,1,3] 및 [4,2,1,3]의 출력도 허용됩니다. 예시 2:입력: 숫자 = [0]출력: [0] 예시 3: 조건:1 0 정답:public class Solution { public int[] SortArrayByParity(int[] nums) { int[] result; IEnumerable even = nums.Where(x => x % 2 == 0); IEnumerable odd = nums...
정수 배열 nums와 정수 k가 주어집니다.한 번의 작업에서 0 nums의 점수는 숫자의 최대 요소와 최소 요소 간의 차이입니다.해당 인덱스의 각 인덱스에 대해 언급된 연산을 최대 한 번만 적용한 후 최소 nums 점수를 반환합니다. 예시 1:입력: nums = [1], k = 0출력: 0설명: 점수는 최대(nums) - 최소(nums) = 1 - 1 = 0입니다. 예시 2:입력: nums = [0,10], k = 2출력: 6설명: nums를 [2, 8]로 변경합니다. 점수는 최대(nums) - 최소(nums) = 8 - 2 = 6입니다. 예시 3:입력: nums = [1,3,6], k = 3출력: 0설명: nums를 [4, 4, 4]로 변경합니다. 점수는 최대(nums) - 최소(nums) = 4 - ..
이진 문자열 s에서도 0과 1의 개수가 같은 비어 있지 않은 서브스트링의 개수를 반환하고, 이러한 서브스트링의 모든 0과 1이 연속적으로 그룹화됩니다.여러 번 발생하는 서브스트레이트는 발생 횟수로 계산됩니다. 예시 1:입력: s = "00110011"출력: 6설명: 연속 1과 0의 개수가 같은 6개의 서브스트레이트가 있습니다: "0011", "01", "1100", "10", "0011", "01"입니다.이러한 서브스트링 중 일부는 반복되며 발생 횟수로 계산됩니다.또한 "00110011"은 모든 0(및 1)이 함께 그룹화되지 않았기 때문에 유효한 하위 문자열이 아닙니다. 예시 2:입력: s = "10101"출력: 4설명: "10", "01", "10", "01"은 연속 1과 0의 개수가 같은 4개의 서브..
문자열 s가 주어지면 모든 문자가 한 번만 표시되도록 중복된 문자를 제거합니다. 결과가 다음과 같은지 확인해야 합니다가능한 사전 순서대로 예시 1:입력: s = "bcabc"출력: "abc" 예시 2:입력: s = "cbacdcbc"출력: "acdb" 조건:1 s는 소문자 영어로 구성됩니다. 정답:public class Solution { public string RemoveDuplicateLetters(string s) { string result = ""; string sequence = string.Concat(s.Distinct()); char[] charArray = sequence.ToCharArray(); Array.Sort(cha..
두 개의 문자열 s와 t가 주어졌을 때, t가 s의 애너그램일 경우 true를 그렇지 못할 경우 false를 반환합니다. 예시 1:입력: s = "anagram", t = "nagaram"출력: true 예시 2:입력: s = "rat", t = "car"출력: false 조건:1 s와 t는 소문자 영어로 구성됩니다. 정답:public class Solution { public bool IsAnagram(string s, string t) { if (s.Length != t.Length) { return false; } while (s != string.Empty) { char split = ..
정수 num이 정해지면, 결과가 숫자 한 개만 나올 때까지 모든 숫자를 반복해서 더한 다음 반환합니다. 예시 1:입력: num = 38출력: 2설명: 과정은 다음과 같습니다. 38 --> 3 + 8 --> 11 11 --> 1 + 1 --> 2 2는 숫자가 한 개뿐이므로 반환합니다. 예시 2:입력: num = 0출력: 0 조건:0 정답:public class Solution { public int AddDigits(int num) { int result = num; while (result > 9) { int add = 0; for (int i = 0; i 해설: 정수 result를 Tostring을 이용하여 char..