프로그래머스_C#/Level_1

[프로그래머스 C#] Level 1 Tips

최애뎡 2021. 9. 11. 01:00
728x90
반응형

프로그래머스 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 문제들은 수월하게 풀 수 있다!

반응형