프로그래머스 [C#] 멀리뛰기
·
알고리즘
문제 풀이public class Solution { public long solution(int n) { long answer = 0; int MOD = 1234567; int[] count = new int[n + 1]; count[0] = 1; count[1] = 1; for (int i = 2; i 이번 문제의 핵심은 정답이 피보나지 수열의 형태를 띄고 있다는 것을 알아채는 것이 핵심입니다.피보나치 수열이란 첫째 및 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열을 의미합니다.ex) 1,1,2,3,5,8,13,21 효진이는 1,2 칸씩 뛸 수 있습니다. 효진이가 멀리뛰기에 사용할 칸의 수 n일 때,피보..
프로그래머스 [C#] 귤 고르기
·
알고리즘
문제 문제 요약하면 다음과 같습니다.- 한상자의 담으려는 귤의 갯수 k와 크기를 담은 배열 tangerine이 주어집니다- 그 중에 가장 많이 겹치는 크기의 귤을 k개가 되도록 상자에 담습니다.- 상자에 담긴 서로다른 크기의 종류의 갯수를 answer에 넣어 반환합니다. 문제를 보고, 귤이 크기 별로 몇개씩 있는지 알 수 있는 데이터가 필요하다고 생각했습니다.자료 구조중에, 저는 딕셔너리를 선택했는데, key : 크기, value : 갯수와 같은 형식으로데이터를 저장해놓으면, 이후에 문제를 풀기에 용이할것 같다는 생각이 들었기 때문입니다.    풀이using System;using System.Collections.Generic;using System.Linq;public class Solution { ..
프로그래머스 [C#] 다음 큰 숫자
·
알고리즘
문제 풀이using System;class Solution { public int solution(int n) { string n_Binary = Convert.ToString(n, 2); //n을 2진수로 변환한 값 int n_Count = 0; //n이 가지고 있는 1의 개수 int count = 0; //특정 숫자의 1의 개수를 세기위한 변수 int answer = n; // 정답 string a_Binary = ""; //정답을 2진수로 변환한 값 for (int i = 0; i  이번 문제의 핵심은 int 값을 2진수로 변환하고, 해당 값에서 1이 몇개 있는지 확인할수 있는가입니다.방법은 여러가..
프로그래머스[C#] 이진 변환 반복하기
·
알고리즘
문제 풀이using System;public class Solution { public int[] solution(string s) { int[] answer = new int[2]; int x_length = 0; //0을 제외한 2진수의 길이 int binaryCount = 0; //2진수 변환을 한 횟수 int zeroCount = 0; //0을 제거한 갯수 //s가 1이 될때까지 무한 반복 while (s != "1") { binaryCount++; for (int i = 0; i   이번 문제는 구현은 어렵지 않았지만, 문제를 이해하는게 관건..
JadenCase 문자열 만들기
·
알고리즘
문제  해결 방안using System;public class Solution { public string solution(string s) { string answer = ""; bool upperChance = true; // true일 경우 대문자로 변환 for (int i = 0; i  이번 문제는 문자열 s를 JadenCase 형태로 나타내는 문제입니다 영어권에서 첫 문자를 확인하는 방법은 공백을 통해 알 수 있습니다.단어와 단어 사이에 공백이 존재한다면 그 뒤에 오는 단어는 첫 문자임으로 이를 활용해 코드를 작성했습니다. 따라서, bool값 upperChance를 활용해 공백 이후에는 무조건 대문자가 되도록 설계하여 문제를 해결했습니다.
C# 최솟값 만들기
·
알고리즘
using System;using System.Collections.Generic;using System.Linq;public class Solution { public int solution(int[] A, int[] B) { int answer = 0; List list_A = new List(A); List list_B = new List(B); list_A.Sort(); //오름차순 정렬 list_B.Sort(); //오름차순 정렬 list_B.Reverse(); //내림차순 정렬로 변경 for (int i = 0; i  해당 문제는 같은 길이를 가진, 2개의 배열의 수를 조합해서 가장 작은 계산 값이 나오게 하는 문제입니다. 곱 연..
프로그래머스 C# 가장 가까운 글자
·
알고리즘
문제설명 문제풀이이번 문제의 핵심은 문장이 주어졌을때, 해당 문장의 중복되는 글자가 있는지 체크하고,중복되는 글자가 몇 칸 앞에 있는지 파악하는것이 핵심인 문제였다. 따라서 중복되는 글자가 있는지 확인하는 bool 값 isHas를 이용해, 중복되는 값이 있다면 List answer에 count를 추가하고, 중복되는 값이 없다면 -1을 추가하도록 구현하여 문제를 해결하였다. using System;using System.Collections.Generic;public class Solution{ public int[] solution(string s) { List answer = new List(); for (int i = 0; i = 0; j--) ..
프로그래머스 C# 두 개 뽑아서 더하기
·
알고리즘
문제설명 문제풀이 1. 이중 for문을 이용해 모든 숫자끼리 더한다2. List의 Contains를 활용하여 더한 수가 이미 존재한다면 리스트에 담지 않는다.3. List의 sort를 통해 오름차순 정렬을 한다.4. 이후 ToArray() 함수를 활용하여 List를 배열로 변환하여 값을 반환한다. using System;using System.Collections.Generic;public class Solution { public int[] solution(int[] numbers) { List answer = new List(); for(int i = 0; i