본문 바로가기
728x90
반응형

CodeSignal66

sumUpNumbers 주어진 문자열에서 등장하는 모든 숫자의 합을 계산하는 함수를 작성하는 것입니다. 예를 들어, "2 apples, 12 oranges"라는 문자열에서는 숫자 2와 12가 나오므로 이 숫자들의 합인 14를 반환해야 합니다. 문제 해결을 위한 접근 방법은 다음과 같습니다: 문자열을 순회하면서 각 숫자를 찾습니다. 찾은 숫자를 모두 더하여 합을 계산합니다. int solution(string inputString) { int ret = 0; int current = 0; foreach(char c in inputString){ if(Char.IsDigit(c)){ current = current * 10 + (c-'0'); } else{ ret += current; current = 0; } } ret += c.. 2024. 1. 8.
Valid Time 주어진 문자열이 24시간 형식의 시간을 올바르게 나타내고 있는지 확인하는 문제입니다. 시간은 "HH:mm" 형식으로 표현되어야 하며, 여기서 HH는 00부터 23까지의 시간을 나타내고, mm은 00부터 59까지의 분을 나타냅니다. 예를 들어, "13:58"은 올바른 시간 표현이지만, "25:51"이나 "02:76"은 잘못된 표현입니다. 문제에서 주어진 예시를 통해 설명하면: "13:58": 올바른 시간 표현입니다. 시간은 00부터 23까지이고, 분은 00부터 59까지입니다. 따라서 true를 반환합니다. "25:51": 잘못된 시간 표현입니다. 시간이 24 이상이기 때문에 false를 반환합니다. "02:76": 잘못된 시간 표현입니다. 분이 59를 초과하므로 false를 반환합니다. bool solut.. 2024. 1. 7.
longestWord 주어진 문자열에서 가장 긴 단어를 찾는 문제입니다. 주어진 문자열에서 가장 긴 단어를 찾는 문제입니다. string solution(string text) { string[] words = text.Split(new char[] { ' ', ',', '.', '!', '?', '&', '@', '#','[',']','-','_' }); return words.OrderByDescending(word => word.Length).First(); } LongestWord 함수는 주어진 문자열 text를 공백 및 구두점 등을 기준으로 단어로 분할합니다. 이를 위해 Split 메서드를 사용합니다. 분할된 단어들은 words 배열에 저장됩니다. OrderByDescending 함수를 사용하여 단어의 길이를 기준으.. 2024. 1. 7.
deleteDigit 주어진 양의 정수에서 하나의 숫자를 삭제했을 때 얻을 수 있는 가장 큰 값을 찾는 문제입니다. 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.. 2024. 1. 6.
chessKnight 나이트(Night)는 체스에서 독특한 움직임을 가진 말로, L자 형태로 움직입니다. 이동은 한 방향으로 두 칸(수평 또는 수직) 이동한 후에, 그 방향과 수직인 방향으로 한 칸 이동하는 것으로 이루어져 있습니다. 이러한 움직임은 나이트가 체스판에서 다른 말들을 뛰어넘을 수 있도록 해줍니다. 수평으로 오른쪽으로 두 칸 이동한 후 수직으로 위쪽으로 한 칸 이동. 수평으로 오른쪽으로 두 칸 이동한 후 수직으로 아래쪽으로 한 칸 이동. 수평으로 왼쪽으로 두 칸 이동한 후 수직으로 위쪽으로 한 칸 이동. 수평으로 왼쪽으로 두 칸 이동한 후 수직으로 아래쪽으로 한 칸 이동. 수직으로 위쪽으로 두 칸 이동한 후 수평으로 오른쪽으로 한 칸 이동. 수직으로 위쪽으로 두 칸 이동한 후 수평으로 왼쪽으로 한 칸 이동. 수직.. 2024. 1. 5.
lineEncoding 주어진 문자열을 다음과 같은 규칙에 따라 인코딩하는 것입니다: 문자열은 동일한 문자로 이루어진 가장 작은 부분 문자열로 나누어집니다. 예를 들어, "aabbbc"는 ["aa", "bbb", "c"]로 나뉩니다. 각 부분 문자열의 길이가 1보다 큰 경우, 해당 부분 문자열은 길이와 반복되는 문자로 대체됩니다. 예를 들어, "bbb"는 "3b"로 대체됩니다. 마지막으로, 새로운 문자열들은 동일한 순서로 연결되어 새로운 문자열이 반환됩니다. 예를 들어, "aabbbc"의 경우: "aa"는 그대로 유지됩니다. "bbb"는 "3b"로 대체됩니다. "c"는 그대로 유지됩니다. 따라서 최종 결과는 "2a3bc"가 됩니다. string solution(string s) { char[] ch = s.ToCharArray.. 2024. 1. 4.
Is MAC48 Address? 주어진 문자열이 MAC-48 주소 형식에 부합하는지 여부를 확인하는 것입니다. MAC-48 주소는 네트워크 인터페이스를 식별하는 데 사용되는 고유한 식별자로, 휴먼 프렌들리한 형태로 표현될 때 여섯 그룹의 두 자리 16진수 숫자로 구성됩니다. 각 그룹은 하이픈(-)으로 구분되어 있습니다. 예를 들어, 유효한 MAC-48 주소는 다음과 같은 형태입니다: "01-23-45-67-89-AB". 문제에서 주어진 inputString이 MAC-48 주소 형식에 부합하는지 확인하는 함수를 작성해야 합니다. 유효한 MAC-48 주소의 특징은 다음과 같습니다: 길이는 정확히 17이어야 합니다. 그룹 간의 구분자는 하이픈(-)이어야 합니다. 각 그룹은 두 자리 16진수여야 합니다. 문자열이 위 조건을 모두 만족하면 tr.. 2024. 1. 3.
728x90
반응형