본문 바로가기

코딩테스트 연습/C#

(8)
[C#/알고리즘] 핸드폰 번호 가리기 💡 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. ‼️ s는 길이 4 이상, 20이하인 문자열입니다. 🖥 나의 풀이 public class Solution { public string solution(string phone_number) { string answer = ""; string temp = ""; // 뒤에서부터 4자리 자르기 temp = phone_number.Substring(phone_number.Length-4); for (int i = 0; i < phone_..
[C#/알고리즘] 하샤드 수 💡 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. ‼️ x는 1 이상, 10000 이하인 정수입니다. 🖥 내 풀이 using System; public class Solution { public bool solution(int x) { int sum = 0; int temp = x; // 자리수 합 구하기 for ( ; temp>0; temp/=10) { sum += (temp%10); } // x의 자릿수의 합으로 x가 나누어지는가 if (x % sum == 0) return..
[C#/알고리즘] 평균 구하기 💡정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요. ‼️ arr은 길이 1 이상, 100 이하인 배열입니다. ‼️ㅍarr의 원소는 -10,000 이상 10,000 이하인 정수입니다. 🖥 나의 풀이 public class Solution { public double solution(int[] arr) { double answer = 0; double sum = 0; foreach (int i in arr) { sum += i; } answer = sum / arr.Length; return answer; } } 🖥 다른 풀이 using System.Linq; public class Solution { public double solution(int[] arr)..
[C#/알고리즘] x만큼 간격이 있는 n개의 숫자 💡 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. ‼️ x는 -10000000 이상, 10000000 이하인 정수입니다. ‼️ n은 1000 이하인 자연수입니다. 🖥 나의 풀이 using System; using System.Collections.Generic; public class Solution { public long[] solution(int x, int n) { List answer = new List (); long i = x; int cnt = 0; while (cnt < n) { answer.Add(i); i += x; c..
[C#/알고리즘] K번째 수 찾기 💡 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. ‼️ array의 길이는 1 이상 100 이하입니다. ‼️ arra..
[C#/알고리즘] 나누어 떨어지는 숫자 배열 💡array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. ‼️ arr은 자연수를 담은 배열입니다. ‼️ 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다. ‼️ divisor는 자연수입니다. ‼️ array는 길이 1 이상인 배열입니다. 🖥 나의 풀이 using System.Collections.Generic; public class Solution { public int[] solution(int[] arr, int divisor) { List answerList = new List(); for ..
[C#/알고리즘] 서울에서 김서방 찾기 💡 String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다. ‼️ seoul은 길이 1 이상, 1000 이하인 배열입니다. ‼️ seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다. ‼️ "Kim"은 반드시 seoul 안에 포함되어 있습니다. 🖥 내 풀이 public class Solution { public string solution(string[] seoul) { string answer = ""; for(int i = 0; i< seoul.Length ; ++i) { if( seoul[i].Equ..
[C#/알고리즘] 두 개 뽑아서 더하기 💡 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. ‼️ numbers의 길이는 2 이상 100 이하입니다. ‼️ numbers의 모든 수는 0 이상 100 이하입니다. 🖥 내 풀이 using System; using System.Linq; using System.Collections.Generic; public class Solution { public int[] solution(int[] numbers) { int[] answer = new int[] {}; List tempList = new List(); int num1 = 0; i..