문제 풀기 185

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

71. 개인정보 수집 유효기간

기본 틀 :using System;public class Solution { public int[] solution(string today, string[] terms, string[] privacies) { int[] answer = new int[] {}; return answer; }} 생각보다 문제가 까다로웠다... 처음에는 계약일로부터 유효기간을 더해서 오늘 날짜와 비교하는 방식으로 파기할 문서를 구할려고 했다. 하지만, 그럴 경우 식이 너무 복잡해지고 20XX.XX.28일 에서 3월 더하기 같은 부분에서 오류가 발생했다.  그래서, 아에 관점을 바꿔서 오늘 일수와 종료 일수를 비교하는 방식으로 바꿨다. 오늘 일수를 구하는 방법은 연 X 12 X 28 + (달..

문제 풀기/C# 2025.02.21

70. 바탕화면 정리

기본틀 :using System;public class Solution { public int[] solution(string[] wallpaper) { int[] answer = new int[] {}; return answer; }} 시작 위치의 가로,세로 마지막 위치의 가로, 세로 변수를 만들어주고 int 범위에서 가장 큰 값이나 작은 값으로 값을 초기화 해줬다. wallpaper를 반복문으로 순회하면서 가장 처음 나오는 "#"과 가장 마지막에 나오는 "#"을 IndexOf()와 LastIndexOf()를 이용해 구하고 Math.Min()이나 Math.Max()으로 시작 위치와 끝 위치  가로, 세로를 변경해줬다. using System;using System.C..

문제 풀기/C# 2025.02.19

69. 성격 유형 검사하기

기본 틀 :using System;public class Solution { public string solution(string[] survey, int[] choices) { string answer = ""; return answer; }} 문제가 엄청 길지만 사실은 별거 아닌 문제다... Dictionary를 이용해 성격 유형 단어(char)를 key, 0으로 value를 결정해준다. 매개변수 choices를 반복문으로 순회하면서 choices[index] 값이 4이면 continue로 다음 반복문으로 넘어가고 그 밖에 1 ~ 3이면 Dictionary에 4 - choices[index] 값을5 ~ 7이면 Dictionary에 choices[index] - 4;..

문제 풀기/C# 2025.02.19