728x90
반응형

c# 35

[프로그래머스 힌트/답/해석] 로그인 성공?

힌트 더보기 - db 배열 내에 로그인 시도하는 문자열이 존재 및 일치하면 로그인 상태를 리턴한다 - id가 존재하지 않으면 fail, password가 틀리면 wrong pw를 리턴한다 정답 더보기 public static string Solution65(string[] id_pw, string[,] db) { LoginStatus loginStatus = LoginStatus.fail; for(int i=0; i< db.Length / db.GetLength(1); i++){ if(id_pw[0] == db[i,0]){ if(id_pw[1]== db[i,1]) loginStatus = LoginStatus.login; else loginStatus = LoginStatus.wrong_pw; break..

C# 2024.01.30

[프로그래머스 힌트/답/해석] 캐릭터의 좌표

힌트 더보기 - right = [1,0] , left[-1,0], up = [0,1], down[0,-1] - 플레이어의 위치가 board의 범위에 초과하면 더이상 계산하지 않는다 -board의 범위는 각각 /2를 해주면 된다(board의 범위는 홀수이다) 예시) board[7,5] 는 x축으로 -3~+3, y축으로 -2~+2 정답 더보기 public static int[] Solution63(string[] keyInput, int[] board) { var boardRange = board.Select(x=> x/2); int[] playerPos2D = new int[2]; foreach(var key in keyInput){ int[] keyValue = MovePosition(key); play..

C# 2024.01.30

[프로그래머스 힌트/답/해석] 컨트롤 제트

힌트 더보기 - 문자열들의 값들을 int 화 하여 더해주다가 다음 문자가 'Z'면 이전 값을 뺴준다 - 다음 문자가 'Z'가 아닐 때만 각 문자를 int화하여 더해준다 - 문자열 s에서 'Z'와 그 이전 숫자 문자를 제거하여 모두 더해준다 예시) "1256Z235" -> "125235" 한 후 합산 정답 더보기 var arr = s.Split(" ").ToList(); while(arr.Contains("Z")) { arr.RemoveRange(arr.IndexOf("Z")-1, 2); } return arr.Sum(x=> Convert.ToInt32(x)); 해석 더보기 var arr = s.Split(" ").ToList(); 문자열 s를 " " 공백을 기준으로 나누어 리스트화하여 저장한다 while..

C# 2024.01.30

[프로그래머스 힌트/답/해석] 외계어 사전

힌트 더보기 - Spell에 담긴 문자들을 모두 사용한 문자열이 존재하는지 찾는 것이다. - spell ["a", "b", "c"] dic ["bcd","abdf", "cda", "aabc" ,"bca"]라면 bcd = false, abdf = false, cda = false, aabc = false, bca = true이므로 1을 리턴해준다 정답 더보기 방법 1 var arr = dic.Select(x => spell.Count(y => x.Contains(y) && x.Count(z => y== z.ToString())==1)); return arr.Count(x=> x==spell.Length)>0 ? 1 : 2; 방법 2 int existCount; foreach(var d in dic){ ex..

C# 2024.01.30

[프로그래머스 힌트/답/해석] OX퀴즈

힌트 더보기 - string[] quiz는 {"1 + 2 = 3", "2 + 3 = 3"} 으로 1공백+공백2공백=공백3 과 같은 구조로 공백을 기준으로 split하여 배열로 나눌 수 있다. - split으로 나눈 배열의 홀수번째는 +,-,=과 같은 연산 문자이다 정답 더보기 public static string[] Solution60(string[] quiz) { List resultList = new List(); foreach(var q in quiz) resultList.Add(IsTrue(q)); return resultList.ToArray(); } static string IsTrue(string s){ var arr = s.Split(" "); var result = 0; if(arr.Sk..

C# 2024.01.30

[프로그래머스 힌트/답/해석] 가까운 수

힌트 더보기 - array가 1, 3, 5, 7일 때 n이 4라면 3과 5가 가까운 수이고 3이 더 작은 수 이므로 3을 리턴한다 정답 더보기 return array.OrderBy(x => x).FirstOrDefault(x => Math.Abs(x - n) == array.Min(o => Math.Abs(o - n))); return array.OrderBy(x => x).OrderBy(x=>Math.Abs(x-n)).First(); 해석 더보기 1) 첫 번째 답 array.OrderBy(x => x) array를 오름차순으로 정렬한다 .FirstOrDefault() 첫 번쨰 값을 반환하거나 기본값을 반환한다 FirstOrDefault(x => Math.Abs(x - n) == array.Min(o =..

C# 2024.01.29

[프로그래머스 힌트/답/해석] 숨어있는 숫자의 덧셈1

힌트 더보기 매개변수로 들어온 문자열에서 숫자로 변환 가능한 값들을 찾아 합을 리턴해주면 된다 숫자 인지 확인 할 수 있는 방법 1) TryParse int.TryParse(string 값, out int 저장할 값) => bool 값으로 반환하며 out int에 저장하여 사용할 수 있다 예시) int saveNum=0; if(int.TryParse(s.ToString(), out saveNum){ ~~~ s가 int형이면 if문 내부로 진입할 것이고 saveNum에 해당 값을 반환한다 2) IsNumber char.IsNumber(string값)은 숫자로 변경 가능하면 True를 반환하는 함수이다 정답 더보기 return my_string.Where(x => char.IsNumber(x)).Sum(x ..

C# 2024.01.29

[프로그래머스 힌트/답/해석] 자릿수 더하기

힌트 더보기 자연수 1234가 있을 때 1+2+3+4를 더해주면 된다 반복문으로 i=0일 때 10*i를 통해 각 숫자를 나눈 값을 더하거나 자연수 1234를 string으로 바꾼 뒤 각 수를 int로 재변환하여 더해주면 된다 정답 더보기 return n.ToString().Sum(x => Int32.Parse(x.ToString())); 해석 더보기 n.ToString() 자연수 n을 string으로 바꾼다 return n.ToString().Sum(x => Int32.Parse(x.ToString())); 바꾼 후 char[]를 각각 int32.Parse를 통해 int화 해준 후 그 값들을 모두 더해준다

C# 2024.01.29

[프로그래머스 힌트/답/해석] 제곱수 판별

힌트 더보기 제곱수의 제곱근을 구하면 된다 16의 제곱근 4 math.pow 혹은 math.sqrt를 사용 정답 더보기 return Math.Sqrt(n) % 1 == 0 ? 1 : 2; return Math.Pow(n,.5f)%1==0? 1 : 2; 해석 더보기 return Math.Sqrt(n) % 1 == 0 ? 1 : 2; Math.Sqrt(n)으로 n의 제곱근을 구하고 1로 나누었을 때 나머지가 0이 아니면 n은 제곱수가 아니므로 2를 리턴 return Math.Pow(n,.5f)%1==0? 1 : 2; pow 를 활용한 방식이다 .5 = 1/2 4 = 2^2 sqrt(4) = (4) ^½ pow(4,.5) = 4^½

C# 2024.01.29
728x90
반응형