문제 풀기 178

111. 무인도 여행

기본 틀 : using System;public class Solution { public int[] solution(string[] maps) { int[] answer = new int[] {}; return answer; }} 문제를 보고 DFS나 BFS로 maps를 탐색 및 bool 타입 변수로 방문 여부를 남겨 다시 탐색하지 못 하게 만들어 값을 구하고자 했다. DFS를 사용하기 위해 메서드의 매개변수를 고민한 결 // 필요한 매개변수 // 방문 여부 // 지도 // 현재 세로 위치 // 현재 가로 위치 public int DFS(bool[,] visited, string[] maps, int currentRow, int cu..

문제 풀기/C# 2025.05.07

110. 두 큐 합 같게 만들기

기본 틀 : using System;public class Solution { public int solution(int[] queue1, int[] queue2) { int answer = -2; return answer; }} 처음에는 간단하게 Queue로 요소를 저장하고 sum1 = queue1.Sum()과 sum2 = queue2.Sum()로 합을 저장한 후 total = sum1 + sum2를 한 값이 홀수이면 -1을 반환하고 아닐 경우 나누기 2를 해준 후 while()문으로 sum1과 sum2가 total과 동일해지면 동작 횟수를 반환해줄 생각이었다. 이때, 동작 횟수가 두 배열의 길이 합에 곱하기 2일 경우 sum1과 sum2가 total이 될 수..

문제 풀기/C# 2025.05.01

109. 연속된 부분 수열의 합

기본 틀 : using System;public class Solution { public int[] solution(int[] sequence, int k) { int[] answer = new int[] {}; return answer; }} 처음 문제를 보고 Dictionary의 Key를 int형 배열로 잡고 Value를 int로 해서 Key에는 시작과 끝 index를 저장, Value에는 개수를 저장해서 Value가 가장 작은 Key를 결과로 반환하고자 했다.using System;using System.Linq;using System.Collections.Generic;public class Solution { public int[] solution(i..

문제 풀기/C# 2025.04.28

108. 삼각 달팽

기본 틀 : using System;public class Solution { public int[] solution(int n) { int[] answer = new int[] {}; return answer; }} 문제를 해결하기 위해서 1차원 배열을 사용해야 하는지 아니면 2차원 배열을 사용해야 하는지 + 반복문은 어떤 형태로 동작 시켜야 하는지 많이 고민했다. 배열은 1차원 배열로 바로 결과를 만드는 건 불가능하다 생각해서 2차원 배열을 사용했다. int[,] triangle = new int[n, n]; 반복문으로 값을 결정하는 방법으로는 int num = 1; int x = -1, y = 0; fo..

문제 풀기/C# 2025.04.24

107. 큰 수 만들기

기본 틀 : using System;public class Solution { public string solution(string number, int k) { string answer = ""; return answer; }} 문제가 쉬워보였지만 상당히 애먹었다... 처음에는 number.Legnth - k 개 문자열을 구성한 후 해당 문자열에서 가장 작은 수를 제거하고 number에 남은 앞 글자를 추가하는 방식으로 max 값을 찾고자 했다... 그런데 그럴 경우 "시간 초과" 발생했다... 도무지 다른 방법이 보이지 않아서 다른 사람의 코드를 찾아보니 StringBuilder와 탐욕 기법으로 문제를 하셨다. using System.Text; St..

문제 풀기/C# 2025.04.22

105. 쿼드압축 후 개수 세기

기본 틀 : using System;public class Solution { public int[] solution(int[,] arr) { int[] answer = new int[] {}; return answer; }} 위의 문제는 2차원 배열을 4등분 후 각각 탐색을 진행하여 0과 1만 존재할 경우 개수를 증가 하면 되는 문제이다. 배열을 각 단계 별로 4등분 해야하기 때문에 재귀함수를 사용하면 편리하고 재귀함수의 매개변수로는 // 필요한 매개변수 // 시작 x, y 위치 // 배열 탐색 범위 // 2차원 배열 public void QuadCompression(int x, int y, int len, int[,] arr) 시작할..

문제 풀기/C# 2025.04.22

106. 택배상자

기본 틀 :using System;public class Solution { public int solution(int[] order) { int answer = 0; return answer; }} 간단한 문제인데 사소한 실수와 생각이 너무 많아져서 문제를 빨리 해결하지 못 했다.( 풀이 방법을 글로 적어봤는데 글이 별로라 ChatGPT의 도움을 받아 정리했다) 해결 방법박스 인덱스 (boxIndex) 초기화현재 적재해야 할 order의 인덱스를 추적하는 변수 boxIndex를 선언합니다.박스 적재 과정1부터 n까지 박스를 순차적으로 확인합니다.현재 박스가 order[boxIndex]와 같다면 바로 트럭에 적재하고 boxIndex를 증가시킵니다.그렇지 않다면, 보조 ..

문제 풀기/C# 2025.04.03

104. 소수 찾기(재귀 함수를 이용한 소수 만들기)

문제를 보고 소수를 만들 방법에 대해 많은 고민을 했다. 재귀함수를 사용해서 소수를 만들어야 하는 상황이라  매개변수로 무슨 값을 줘야할지 많이 고민했다. 고민 끝에 나온 결론으로는  1. 제한 시킬 글자 수2. 현재 만들어진 숫자(문자열)3. numbers(제공 될 문자열) 로 선택했다. 재귀함수의 반환형은 void로 설정 했는데 이유는 딱히 반환해야 할 내용이 없어 보였기 때문이다.  // 필요한 매개변수 // 제한 시킬 글자 수 // 현재 만들어진 숫자(문자열) // numbers(제공 될 문자열) public void MakeNumber(int length, string currentWords, string numbers) { if(curren..

문제 풀기/C# 2025.04.01

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