문제 풀기 179

82. 멀리 뛰기

기본 틀 :public class Solution { public long solution(int n) { long answer = 0; return answer; }} 처음에는 조합을 이용해서 문제를 해결할려고 했다. 이유로는, n = 7일 때, 1111111 => 7C7 = 1111112 => 6C5 = 611122 => 5C3 = 101222 => 4C1 = 4 => 21 n = 6일 때, 111111 => 6C6 = 111112 => 5C4 = 51122 => 4C2 = 6222 => 3C0 = 1 => 13 로 n이 짝수이면 3C0과 같은 케이스를 위해 1을 더해주면 원하는 결과 나올 것이라 생각했기 때문이다. 하지만, 위의 방법을 코드로 작성하기는 번거롭고 ..

문제 풀기/C# 2025.02.28

81. N개의 최소공배수

기본 틀 :public class Solution { public int solution(int[] arr) { int answer = 0; return answer; }} 문제를 보고 사람이 최소공배수를 구하는 방법 처럼 풀고자 시도했다. 하지만, 그 과정을 코드로 구현하기에는 아직 내 실력이 부족했다...(방법이 떠오르지 않음...) 그래서 두 수의 최대공약수를 구하는 방법 중 가장 유용한 유클리드 호제법을 이용해 최소공배수를 구해줬다. 유클리드 호제법은  두 수의 나머지 연산을 이용해 큰 수에서 작은 수를 나눈 나머지를 구하고 작은 수를 큰 수로, 나눈 나머지를 작은 수로 교체하여 다시 반복 계산하고 이때, 나눈 나머지가 0이 될 때 작은 수가 최대공약수가 되는 ..

문제 풀기/C# 2025.02.28

80. 예상 대진

기본 틀 :using System;class Solution{ public int solution(int n, int a, int b) { int answer = 0; // [실행] 버튼을 누르면 출력 값을 볼 수 있습니다. System.Console.WriteLine("Hello C#"); return answer; }} 문제를 보고 while 문으로 횟수를 구해야겠다고는 생각했다. 그리고 각 라운드 마다 a, b가 2로 나눠지는데 이때, a와 b가 홀수이면 +1을 해주면 됐다.(그럴 경우 a와 b가 0이 되는 현상도 방지 가능) using System;using static System.Math;class Solution{ pub..

문제 풀기/C# 2025.02.28

79. 카펫

기본 틀 :using System;public class Solution { public int[] solution(int brown, int yellow) { int[] answer = new int[] {}; return answer; }} 약수를 이용하면 쉽게 풀 수 있겠다는 생각을 했지만 정작 가로와 세로 길이를 구하는 부분에서 막혀 문제를 풀지 못 했다...  4, 6, 7 테스트를 케이스로는 brown = 18, yellow = 6 [18, 6] -> [8, 3] (o)[18, 6] -> [6, 4] (x) 의 경우가 존재했다... 어떻게든 해결 방법을 모색했지만 해결 방법이 떠오르지 않아 옛날에 JavaScript로 모든 테스트를 통과한 코드를 바탕으로 C..

문제 풀기/C# 2025.02.26

78. 피보나치

기본 틀 :public class Solution { public int solution(int n) { int answer = 0; return answer; }} 문제를 잘 보면 0 + 1 = 11 + 1 = 21 + 2 = 32 + 3 = 5 0 + 1 = 11 + 1 = 21 + 2 = 32 + 3 = 5 이런 식으로 해당 값이 재사용 되는 것을 볼 수 있다. 그래서, 3개의 변수를 선언하고 +와 %1234567을 반복 수행해준다. 마지막에 %1234567을 하지 않고 + 연산을 수행할 때 하는 이유는 int.MaxValue인 2,147,483,647을 초과하는 숫자가 결과로 나올 수 있기 때문이다.using System;public class Solution ..

문제 풀기/C# 2025.02.25

76. JadenCase 문자열 만들기

기본 틀 : public class Solution { public string solution(string s) { string answer = ""; return answer; }} 먼저 매개 변수로 주어진 s를 모두 소문자로 변환 시켜줬다. 왜냐하면 단어의 첫 글자를 대문자, 이외의 단어는 소문자로 바꾸는 행위가 매우 불편했기 때문이다. 그래서, 모든 글자를 소문자로 변환 후 단어의 첫글자를 대문자로 바꿀 수 있도록 만들어줬다. 다음으로는 반복문으로 문자열 s를 순회하면서 s[index]가 숫자인지, 공백인지, 소문자인지 구분해줬다. 이때 하나의 bool 변수를 이용해 해당 글자가 공백 이후의 첫 글자인 소문자이면 대문자로 변환할 수 있도록 만들어줬다.using ..

문제 풀기/C# 2025.02.25

75. 최댓값과 최솟값

기본 틀 :public class Solution { public string solution(string s) { string answer = ""; return answer; }} 매개변수로 주어진 s를 Split()로 공백을 기준으로 자른 후 각 요소를 int 형으로 바꿔 배열에 저장했다. 마지막으로 int 형 배열에서는 Min()고 Max()로 배열에서 가장 큰 값과 작은 값을 찾아 문자열 형태로 반환해줬다. using System;using System.Linq;public class Solution { public string solution(string s) { int[] temp = s.Split(' ').Select(elemen..

문제 풀기/C# 2025.02.24

74. 신고 결과 받기 (Distinct, Dictionary Value를 List로 만들기)

기본 틀 :using System;public class Solution { public int[] solution(string[] id_list, string[] report, int k) { int[] answer = new int[] {}; return answer; }}  신고를 당한 유저를 key, 횟수를 value로 하는 딕셔너리와 신고를 한 유저를 key, 당한 유저 목록인 List를 value로 하는 딕셔너리를 만들어줬다. 그 후, 반복문을 통해 report를 순회하면서  두 딕셔너리에 값을 채워 넣거나 증가 시켜줬다. 마지막으로 신고 횟수가 제한 횟수를 초과하는지 비교하고 횟수를 초과한 경우 신고한 유저에게 그 사실을 알릴 수 있도록 만들어줬다. usi..

문제 풀기/C# 2025.02.24

73. 공원 산책

기본 틀 :using System;public class Solution { public int[] solution(string[] park, string[] routes) { int[] answer = new int[] {}; return answer; }} 처음에는 당연히 시작 포인트 "S"가 2차원 배열의 Row가 0인 Colum에 존재할 것이라 생각하고 문제를 풀었다. 제출한 결과 실패한 테스트 케이스가 존재했고, "질문하기"를 살펴보니 Row가 0이 아닌 위치에서 "S"가 존재했다. 그래서 반복문을 통해 S가 있는 위치를 찾을 수 있도록 수정해주었다. 2번 째 난관으로는 방향에 따른 이동 및 이동 불가를 구현하는 것이었다. 처음에는 switch문에 따른 방향을..

문제 풀기/C# 2025.02.24