문제 풀기 178

91. 기능 개발

기본 틀 :using System;public class Solution { public int[] solution(int[] progresses, int[] speeds) { int[] answer = new int[] {}; return answer; }} 처음에는 progresses와 speeds를 List에 담아서  List의 앞에서 진행률이 100인 요소를 구해  List에서 제거와 동시에 count를 증가시켜 개수를 구할 계획이었다. 이렇게, 생각한 이유는 Queue로 progresses와 speeds를 담으면 index 조회 및 값 증가가 불가능해 불편할 것이라 생각했기 때문이다. using System;using System.Collections.Gene..

문제 풀기/C# 2025.03.12

90. 의상

기본 틀 :using System;public class Solution { public int solution(string[,] clothes) { int answer = 0; return answer; }} 문제를 보고 Dictionary에 key 값으로 string 타입을 value로는 List 을 사용해야 한다는 사실은 파악했다. 그 다음으로는 반복문을 사용해 매개변수 clothes를 순회하면서 clothes[index, 1]은 key 값으로 clothes[index, 0]는 value 값으로 Dictionary에 담아줬다. 여기까지는 무난무난하게 코드를 작성할 수 있었지만 얼굴, 상의, 하의, 겉옷으로 중복 없이 경우의 수를 구하는 코드 작성이 어려웠다. 이유..

문제 풀기/C# 2025.03.12

89. 할인 행사

기본 틀 :using System;public class Solution { public int solution(string[] want, int[] number, string[] discount) { int answer = 0; return answer; }} 이 문제는 want에 대한 dictionary와 10일 기준 discount에 대한 dictionary를 만들어 두 dictionary를 비교하면 되는 문제다. 이때, 입출력 예 2번과 같이  want나 discount에 대한 dictionary에 해당 key 값이 없어 오류가 발생할 수 있다.  그래서, if문에 !dictionary.ContainsKey() 를 사용해서 오류가 발생하지 않도록 해주면 된다.u..

문제 풀기/C# 2025.03.11

88. 행렬의 곱셈

기본 틀 : using System;public class Solution { public int[,] solution(int[,] arr1, int[,] arr2) { int[,] answer = new int[,] {{}}; return answer; }} 문제를 보고 내장 함수를 사용할까? 2중 반복문으로는 풀 수 없을까? 진짜 3중 반복문 써야하나? answer이라는 변수를 사용 안 하는 방법은 없나? 등등 여러가지 생각을 하다보니 머리 속이 복잡해졌다... 그렇게 복잡해진 머리로 3중 반복문에 answer를 사용해서 문제를 풀려고 시도하니  각각의 배열의 index에 i, j, k 뭘 넣어줘야 하는지 더 헷갈리기 시작했다... 그래서, 위와 같이 머리를 정리한..

문제 풀기/C# 2025.03.11

86. H-index

기본 틀 : using System;public class Solution { public int solution(int[] citations) { int answer = 0; return answer; }} 위의 문제는 문제 자체를 이해하는 것이 어려웠다... H-index를 구하는 과정은 가장 많이 인용된 논문 부터 적게 인용된 논문 순으로 정리한다. 정리된 논문을 앞에서 부터 차례로 확인하면서, 논문의 인용 횟수가 현재 논문의 순서보다 같거나 작아지는 지점을 찾는 것이었다... using System;using System.Linq;public class Solution { public int solution(int[] citations) { ..

문제 풀기/C# 2025.03.06

85. 연속 부분 수열 합의 개수

기본 틀 :using System;public class Solution { public int solution(int[] elements) { int answer = 0; return answer; }} 중복이 없는 배열을 구성해야 되기 때문에 HashSet을 선언해줬다. 그리고 elements를 회전시켜야 하기 때문에 List를 선언하여 elements의 요소를 넣어줬다. 반복문으로 합을 구할 때 마다 hashSet에 추가하여 중복이 없는 요소를 저장할 수 있도록 만들어줬다.(hashSet에 중복이 있을 경우 저장을 하지 않기 때문) 마지막으로 다음 반복으로 넘어갈 때 list[0]으로 index가 0인 요소를 temp에 저장하고 RemoveAt(0)으로 list의..

문제 풀기/C# 2025.03.04

84. 괄호 회전하기

기본 틀 :using System;public class Solution { public int solution(string s) { int answer = -1; return answer; }} 먼저 매개변수로 주어진 s를 회전시켜야 했다. 그래서 반복문과 Substring을 사용해서  currentString = currentString.Substring(1) + currentString[0]; 위와 같은 방식으로 회전시켜줬다. 그 다음 문제를 잘 보면 '[', '{', '(' 괄호들은 중복돼서 나와도 되지만 향후 ']', '}', ')' 괄호가 나타났을 때 매칭이 확인을 해야하기 때문에 Stack을 사용해서 저장하기로 했다. 만약, ']', '}', ')' 괄호가..

문제 풀기/C# 2025.03.04

83. 귤 고르기 (Dictionary 요소 정렬)

기본 틀 : using System;public class Solution { public int solution(int k, int[] tangerine) { int answer = 0; return answer; }} 문제를 푸는 방법으로 여러가지가 존재하겠지만  딕셔너리를 활용하여 tangerine의 크기 별 개수를 구하고 딕셔너리를 내림차순 정리 후 k와 비교하여 몇 개의 크기가 필요한지 구했다. using System;using System.Linq;using System.Collections.Generic;public class Solution { public int solution(int k, int[] tangerine) { Di..

문제 풀기/C# 2025.03.04

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