본문 바로가기

분류 전체보기136

주사위 게임 1 (C#) 📌프로그래머스 181839💡풀이모두 홀수, 둘 중 하나만 홀수, 모두 짝수 세 가지를 if문으로 조건을 걸어서 해결public int 주사위게임1(int a, int b){ if (a % 2 != 0 && b % 2 != 0) // 둘 다 홀수 return a * a + b * b; else if ((a % 2 != 0 && b % 2 == 0) || (a % 2 == 0 && b % 2 != 0)) // 하나만 홀수 return 2 * (a + b); else // 둘 다 짝수 return (int)MathF.Abs(a - b);} 2024. 5. 25.
StringBuilder 📌StringBuilder란?String을 사용하여 문자열을 반복적으로 수정 시, 새로운 String 객체가 생성되기 때문에 GC 대상이며 성능이 크게 떨어진다.대안으로 사용할 수 있는 클래스가 StringBuilder 클래스이다.StringBuilder는 새로운 객체를 사용하지 않고 기존 객체에서 수정이 가능하기 때문에 성능이 크게 향상된다. 📌StringBuilder 사용 방법System.Text 네임스페이스가 필요하다.StringBuilder 클래스 인스턴스를 생성 후 Append, Insert, Replace, Remove 등 다양한 메서드를 사용해 문자열 수정이 가능하다.using System.Text;StringBuilder sb = new StringBuilder();sb.Append(".. 2024. 5. 24.
두 수의 연산값 비교하기 (C#) 📌프로그래머스 181938💡풀이주어진 정수 a, b를 string으로 이어 붙인다.int.Parse를 사용해 붙여진 정수로 변환.public int 두수의연산값비교하기(int a, int b){ int answer; StringBuilder sb = new StringBuilder(); sb.Append(a.ToString()); sb.Append(b.ToString()); string st = sb.ToString(); int ab = int.Parse(st); answer = ab > 2 * a * b ? ab : 2 * a * b; return answer;} 다른 사람의 풀이public int 두수의연산값비교하기(int a, int b){ int.. 2024. 5. 24.
원소들의 곱과 합 (C#) 📌프로그래머스 181929💡풀이모든 원소를 더할 변수, 곱할 변수를 만든다.두 수를 비교해서 1 or 0 을 return 한다.public int 원소들의곱과합(int[] num_list){ int sqr = 0; int multiple = 1; foreach (int num in num_list) { sqr += num; multiple *= num; } return sqr * sqr > multiple ? 1 : 0;} 2024. 5. 22.
이어 붙인 수(C#) 📌프로그래머스 181928💡풀이순간적으로 string이 생각났지만 쓰지 않고도 해결할 방법이 떠올라 int만 사용한다.반복문을 돌며 검사를 할 때, num_list의 홀수와 짝수는 각각 다음과 같다.num_list[i] % 2 == 1num_list[i] % 2 == 0 홀수 짝수 int 변수를 각각 만들고 처음 더하면(홀수or짝수 == 0) num_list[i]를그 이후는 (홀수or짝수) * 10 + num_list[i]를 한다.num_list의 원소가 1이상 이기에 가능하다.public int 이어붙인수(int[] num_list){ int even = 0; int odd = 0; for (int i = 0; i 0 ? even * 10 + num_list[i] : num_lis.. 2024. 5. 22.
글자 이어 붙여 문자열 만들기 (C#) 📌프로그래머스 181915💡풀이index_list의 원소들에 해당하는 인덱스 글자는 i = 0, i string += 를 하지 않고 StringBuilder를 사용하면 더 빠르다.빠른 것도 있지만 일단 string += 자체가 새로운 문자열 객체를 생성하기 때문에 GC 대상이므로 사용을 지양해야 한다.public string 글자이어붙여문자열만들기(string my_string, int[] index_list){ StringBuilder sb = new StringBuilder(); for (int i = 0; i  마침 바로 StringBuilder를 사용할 순간이 와서 즉시 사용 해보았다. 2024. 5. 22.
부분 문자열 이어 붙여 문자열 만들기 (C#) 📌프로그래머스 181911💡풀이이차원 정수 배열 parts는 [x,2] 크기를 가진다.my_strings크기와 parts.GetLength(0)의 크기는 같다.public string 부분문자열이어붙여문자열만들기(string[] my_strings, int[,] parts){ string answer = ""; for(int i = 0; i  일단 string을 += 했다는 게 너무 맘에 안 든다. StringBuilder를 사용해 본 적 없는 게 큰 걸림돌이었던 것 같다.내일 StringBuilder 공부와 포스팅을 해야겠다... 그리고 이중 for문이 들어갔다는 점도 개선할 수 있지 않을까 생각이 들었다.다른 사람의 풀이를 보자public string 부분문자열이어.. 2024. 5. 21.
접두사인지 확인하기 (C#) 📌프로그래머스 181906💡풀이is_prefix를 my_string과 첫 문자부터 비교했을 때 하나도 틀리면 안 된다.is_prefix가 my_string과 완전히 동일해도 문자가 하나라도 더 많으면 틀리다.public int 접두사인지확인하기(string my_string, string is_prefix){ for(int i = 0; i = my_string.Length || my_string[i] != is_prefix[i]) return 0; return 1;} IndexOf 라는 메서드를 사용하면 한 줄로 표현이 가능하다.public int 접두사인지확인하기(string my_string, string is_prefix){ return my_string.In.. 2024. 5. 21.
배열 만들기 1 (C#) 📌프로그래머스 181901💡풀이제한사항에 k 정수 n / k 개의 배열의 크기를 가진다.오름차 순이기 때문에 순서대로 k * i (int i = 1, i public int[] 배열만들기1(int n, int k){ int[] answer = new int[n / k]; for (int i = 1; i 2024. 5. 21.