본문 바로가기
반응형

코딩테스트 준비/프로그래머스9

프로그래머스 C# - 삼총사 +) DFS사용해서 풀기 문제를 보고 DFS로 풀었는데 제출 후 다른 사람들 코드에서는 다들 반복문을 사용해서 풀어서 답을 공유하고자 게시글을 작성하게 되었습니다 :) 알고리즘 설명DFS의 depth값이 3이 되는 경우 세가지 조합이 생긴것이므로 return해주도록 하였고 return 전에 sum의 값이 0인 경우 answer값을 증가되도록 하였다.예시[-2, 3, 0, 2, -5]코드 전문using System;using System.Linq;public class Solution { static int answer = 0; public void dfs(int idx, int depth, int sum, int[] number){ if(depth == 3) { if(su.. 2024. 6. 14.
프로그래머스 - 카펫 완전탐색 분야라서 어떻게 풀지하다가 힌트를 조금 봤는데 찐 수학문제였다. 그림에서 아래와 같이 두 가지의 수식을 찾을 수 있다. (x는 가로길이, y는 세로길이) 위의 수식을 조합해서 가로 세로 길이를 구해야 한다. 01 첫번째 코드 위의 yellow = x * y 는 x = yellow / y로 바꿀 수 있다. 이를 이용해서 수식을 짜보면 아래와 같이 나온다. for(int y = 1; y 2024. 3. 5.
프로그래머스 C# - 피보나치 수 어떤 문제 유형인지 유추하기 문제에서 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수부분이 있다. 그러면 수가 엄청 크다는 것을 의미한다. 이런 문제는 대표적인 DP문제이다. 그러므로 점화식을 구해보면 피보나치 수열은 dp[i] = dp[i-1] + dp[i-2]로 나타낼 수 있다. public class Solution { public long solution(int n) { long[] answer = new long[1000001]; answer[1] = 1; answer[2] = 1; for (int i = 3; i < n + 1; i++) { answer[i] = (answer[i - 1] + answer[i - 2]) % 1234567; } return answer[n]; } } 2024. 2. 19.
프로그래머스 C# - 다음 큰 숫자 문제를 이해하면 쉽게 이해할 수 있는 문제이다. 간단히 설명하자면 주어진 숫자에서 1의 갯수와 같은 다음 숫자를 구하면 된다. C#에서 Convert.ToString을 이용하면 쉽게 진법변환을 할 수 있다. (자세한 내용은 아래 게시글 참조) C# - Convert.ToString 메서드로 진수 변환(10진수를 2진수, 8진수, 16진수로) Convert.ToString 메서드 정수,실수,날짜등 다양한 데이터 유형을 문자열로 변환한다. public static string ToString(int value, int toBase); 매개변수 value : 변환할 32비트 부호 있는 정수 toBase : 변환 값의 진수로 code-piggy.tistory.com 문제 푸는 순서 01 n을 2진수로 바꾼 다음.. 2023. 12. 15.
프로그래머스 C# - 올바른 괄호 봤던 문제라 금방 풀었다! using System; using System.Collections.Generic; public class Solution { public bool solution(string s) { bool answer = true; int right = 0; int left = 0; foreach(char c in s) { if(c=='(') left++; else right++; if(left < right) { answer = false; return answer; } } if(left != right) { answer = false; return answer; } return answer; } } 백준에 비슷한 문제가 있었다. 백준 C# - 9012 백준 C# - 9012 usin.. 2023. 9. 17.
프로그래머스 C# - 이진 변환 반복하기 많이 풀어본 이진법 문제가 나와서 나름 금방 풀었던 것 같다. 반복문 2개를 써도 되나 고민하면서 풀었는데 통과되어서 다행이다! using System; using System.Linq; using System.Collections.Generic; public class Solution { public int[] solution(string s) { int[] answer = new int[2]; int count_0 = 0; int count = 0; while(s!= "1") { count++; List s_string = new List(s); count_0 += s_string.Count(n => n=='0'); string a = s.Replace("0",""); int a_len = a.Len.. 2023. 9. 12.
반응형