프로그래머스 Level 1 의 문제들은 사실 기본적인 C#의 내용만 알면 쉽게 풀 수 있다.
[ 딱히 C#이라고 말하기도 좀 그릏다. 그냥 음.. 그래 음.. ]
* 형변환
int.TryParse(), int.Parse(), Convert.ToInt32()
-> Parse를 사용할 경우 물론 int가 아니라 float으로 사용할 경우도 있을 것이고 Try를 통해 bool형으로 반환이 잘 됐는지 확인도 가능하며 Convert의 경우도 32가 아니라 64로도 사용할 일이 있을 것
* Convert.ToString(int형, 2); -> 2진수 문자열로 변환 => 요렇게도 사용 가 능
* ToString()
string su = n.ToString();
-> n은 정수임
* 배열 변환
string str = "test";
char[] temp = str.ToCharArray();
string _test = new string(temp);
-> string을 Char 배열로 넣고 char배열을 string으로
* 삼항 연산자
for (int i = -1; ++i < n;) answer += i % 2 == 1 ? "수" : "박";
-> if else의 2가지 형식으로 끝나는 건 큰 변화가 없을 것 같을 시에 삼항 연산자를 사용하기에 좋음
* 확장 메소드 활용
int Q_Max = que.Max(_que => _que.Value);
-> queue의 Value값 중 Max를 고르는
* => Array, List나 뭐 자주 사용하는 Collection들은 여러 메소드를 제공하는데 Min, Max, 뭐 Average 같은 것 들은 기본 숙지하는 것이 좋다.
* KeyValuePair
Queue<KeyValuePair<int, int>> que_priorities = new Queue<KeyValuePair<int, int>>();
que_priorities.Enqueue(new KeyValuePair<int, int>(i, priorities[i]));
-> List, queue, stack 등 에서 dictionary 말고 KeyValuePair도 사용하기 좋음
* 정렬
OrderBy, OrderByDescending, Sort, Reverse 등- 아 중복제거(Distinct)도 당연히 숙지
* _list = _list.OrderBy(x => x).ToList();
-> 정렬할 때 생각 하고 정렬하기 (Sort(), Reverse()는 뭐 따로 다시 저장할 필요는 없는데 OrderBy는 x)
* StringBuilder - 수행 속도를 지켜줘!
StringBuilder sb = new StringBuilder();
for (int i = -1; ++i < _list.Count;) sb.Append(numbers[_list[i].Key].ToString());
answer = sb.ToString();
-> String을 더할 때에 메모리 차이 answer += "" 보다 sb 쓰는 게 속도 측면에서 좋겠
[ 물론 현격히 string += " ____ " 부분이 적으면 모르겠는데 1000번 10000번 해야 한다고 가정하면 절대 저렇게 하면 안되겠.... ]
* Collection을 조금 활용하고 간단한 반복 처리 등의 연산 정도만 잘하면 Level 1 문제들은 수월하게 풀 수 있다!
'프로그래머스_C# > Level_1' 카테고리의 다른 글
[프로그래머스 C#] 없는 숫자 더하기 (0) | 2021.10.19 |
---|---|
[프로그래머스 C#] 6주차_복서 정렬하기 (0) | 2021.10.18 |
[프로그래머스 C#] 로또의 최고 순위와 최저 순위 (0) | 2021.09.10 |
[프로그래머스 C#] 4주차 직업군 추천하기 (0) | 2021.09.10 |
[프로그래머스 C#] 숫자 문자열과 영단어 (0) | 2021.09.09 |