분류 전체보기 449

103. 가장 큰 수 (Array.Sort, CompareTo)

기본 틀 : using System;public class Solution { public string solution(int[] numbers) { string answer = ""; return answer; }} 문제를 보고 "OrderByDescending이나 Array.Sort를 활용하면 쉽게 해결할 수 있지 않나?" 라는 생각을 했다. 그리고 OrderByDescending은 아무리 생각해봐도 아닌 것 같고 Array.Sort를 잘 활용하면 좋다는 생각은 들었지만 어떻게 조건에 부합하게 비교할지 막막했다... 인터넷에 찾아보니 CompareTo()를 활용해서  정수형 배열을 문자열 배열로 만든 요소 두 개를  (b + a).CompareTo(a + b)로 비..

문제 풀기/C# 2025.03.31

102. 다리를 지나는 트럭

기본 틀 : using System;public class Solution { public int solution(int bridge_length, int weight, int[] truck_weights) { int answer = 0; return answer; }} 위 문제를 풀어보면서 아직까지 '어떤 자료구조로 어떻게 알고리즘을 구현해서 문제를 해결할 것인가' 라는 생각하는 힘이 많이 약하다는 것을 많이 깨달았다... Stack이나 Queue를 사용해서 제시된 예시는 모두 통과했지만 전체 테스트에서 부분적인 통과 밖에 못 했다... 인터넷을 통해 다른 사람들의 풀이를 살펴 본 결과  // 다리를 건너는 자동차 Queue Queue pro..

문제 풀기/C# 2025.03.31

101. 2개 이하로 다른 비교

기본 틀 : using System;public class Solution { public long[] solution(long[] numbers) { long[] answer = new long[] {}; return answer; }} 위의 문제를 푼다고 애먹었다... 먼저 long[] numbers를 2진수로 변경할 필요가 존재한다. 그래서,  public long[] solution(long[] numbers) { string[] bit = new string[numbers.Length]; for(int i = 0; i  위와 같은 코드로 2진수로 변경 및 앞에 "0"을 추가해 "01"이 "10"이 될 상황을 ..

문제 풀기/C# 2025.03.25

100. 숫자 변환하기

기본 틀 : using System;public class Solution { public int solution(int x, int y, int n) { int answer = 0; return answer; }} 먼저 x와 y가 동일할 수 있기 때문에  if(x == y) return 0; 으로 0을 리턴할 수 있도록 해준다. 그 이외의 케이스들은 x가 y로 될 수 없는 케이스거나 가능한 케이스 이다. 이때, +n, * 2, * 3의 결과가 중복될 수 있기 때문에 HashSet을 사용하기로 결정했다. 그리고 계산 과정을 약간이나마 줄이기 위해서  HashSet hashSet = new HashSet(){x + n, x * 2, x * 3};..

문제 풀기/C# 2025.03.21

99. 롤케이크 자르기

기본 틀 : using System;public class Solution { public int solution(int[] topping) { int answer = -1; return answer; }} 문제를 보고 아는 함수들을 조합해서 풀어보았다. topping을 반복문과 Skip().Take() 함수를 활용해  형과 동생의 케이크를 자르고 Distinct() 함수로 중복을 해줬다. 그리고, Length를 비교해 개수를 구하고자 시도했다. 그 결과... using System;using System.Linq;using System.Collections.Generic;public class Solution { public int solution(int[] t..

문제 풀기/C# 2025.03.21

98. 뒤에 있는 큰 수 찾기

기본 틀 :using System;public class Solution { public int[] solution(int[] numbers) { int[] answer = new int[] {}; return answer; }} 처음에는 문제를 보고 당연히 2중 반복문을 통해 비교 하는 코드를 작성했다.using System;public class Solution { public int[] solution(int[] numbers) { int[] list = new int[numbers.Length]; int i = 0; for(; i   그 결과 시간  초과에 걸리게 됐다... 시간 초과..

문제 풀기/C# 2025.03.21

97. 모음 사전

기본 틀 : using System;public class Solution { public int solution(string word) { int answer = 0; return answer; }} 문제에서 DFS를 활용하여 바로 원하는 word를 구하고자 시도했지만 도무지 구해지지 않았다... 결국 다른 사람이 작성한 코드를 바탕으로 코드를 분석하기로 결정했다.  public char[] alpabet = {'A', 'E', 'I', 'O', 'U'}; public List list = new List(); 먼저, char 형 배열을 만들어 'A', 'E', 'I', 'O', 'U'로 초기화 해주고 만들어진 단어를 저장하기 위해 문자열 List를 만들어..

문제 풀기/C# 2025.03.20

96. 주차 요금 계산(TimeSpan 자료형)

using System;public class Solution { public int[] solution(int[] fees, string[] records) { int[] answer = new int[] {}; return answer; }} 나름 재미있고 유익한 문제를 풀었다. 자동차 번호에 따른 입차, 출차 시간을 저장할 필요가 있어 보였기 때문에 Dictionary를 사용해서 자동차 번호를 key로 시간 기록을 value로 사용하기로 했다. 이때, 시간 기록은 정해진 크기가 아닌 유동적이므로 List를 사용해 저장할 수 있도록 해줬다. List의 타입으로는 TimeSpan이라는 자료형을 사용하기로 결정했다. 그 이유로는, DateTime(특정 시점)과 달리 두..

문제 풀기/C# 2025.03.19

95. k진수에서 소수 개수 구하기

기본 틀 :using System;public class Solution { public int solution(int n, int k) { int answer = -1; return answer; }} 문제를 보고 매개변수 n을 k진수로 변환하기 위해  Convert.ToString()을 사용할려고 했다. 하지만 Convert.ToString()은 2진수, 8진수, 10진수, 16진수 변환만 지원하기 때문에 문제의 3진수는 지원하지 않는다. 그래서, 직접 n을 k진수로 변환한 값을 구하기로 결정했다.  string temp = ""; while(n / k != 0) { temp += n % k; ..

문제 풀기/C# 2025.03.18

94. 타겟 넘버

using System;public class Solution { public int solution(int[] numbers, int target) { int answer = 0; return answer; }} 이 문제도 DFS 으로 재귀함수를 만들어 깊이 우선 탐색을 진행해야 했다...(이제는 진짜 이런 문제 밖에 없는 듯...ㅜㅜ) 재귀함수는 매개변수가 중요하기 때문에 매개변수로 뭘 줄지 생각해봤다. 1. 숫자 배열 numbers2. 타겟 넘버 target3. 숫자 배열에서 현재 탐색할 index4. 현재 계산 결과 이렇게 필요하다고 판단 했다. 또한, 재귀함수는 반환형을 어떻게 주느냐에 따라 결과가 달라질 수 있는데 반환형을 void로 해도 괜찮을 것 같았다...

문제 풀기/C# 2025.03.18