230825 내일배움캠프 14일차

Minsang Kim·2023년 8월 25일
0

TIL

목록 보기
14/41

오늘은 금요일이다. 내일 쉰다. 내일 쉰다. 내일 쉰다. 내일 쉰다. 내일 쉰다. 내일 쉰다.


C# 코테

프로그래머스 : 문자열 내림차순으로 배치하기

이 문제를 풀면서 기억해야 하는 것이 있어 적는다.
일단 파이썬으로 먼저 풀어봤다.

def solution(s):
    return ''.join(sorted(s, reverse=True))

한줄 컷 삽가능. 역시 파이썬이다. b

그럼 C#으로 한번 가볼까.
파이썬처럼 풀어보려 했지만, 아직은 메소드를 모르는게 많아 되는지 아닌지 몰라서 결국 구글링 ㄱ.
대충 두가지 방식을 기억하면 될 것 같다.

public string solution(string s)
    {
        char[] ss = s.ToCharArray();

        Array.Sort(ss);
        Array.Reverse(ss);

        return new string(ss);
    }

먼저 첫번째 방식. using System; 버전이다.
파이썬처럼 문자열을 배열로 만드는 메소드가 있었다. 바로 ToCharArray(). 요 놈 아주 유용하게 써먹을 거 같으니까 꼭 기억해두자. 반대로는 그냥 string안에 매개변수로 배열을 넣으면 배열을 문자열로 변환가능하다.
그리고 System.Array를 사용해 정렬과 역순배치를 했다.

public string solution(string s)
	{
        string answer = "";

        foreach (var item in s.ToCharArray().OrderByDescending(x => x))
        {
            answer += item;
        }

        return answer;
    }

두번째 방식. using System.Linq; 버전이다.
역시 링크가 간지난다. 아직 링크에 대해 익숙하지 않으니 빠르게 습득해보자.

리슬라임 리팩토링

리팩토링이 뭐냐? 간단하게 하면 코드 정리.
개인 과제도 끝나고 심심해서 리슬라임 코드 다시 뒤집어 까보자.

  • 일단 게임 정지 로직에 대해 뒤집어 엎었다. 지금은 각각에 대해 플래그를 선언해 그를 확인하는 방식으로 진행했지만. UI를 스택으로 바꾸는 작업을 저번에 이어서 진행해보려고 이것도 UI와 밀접한 관련이 있다고 판단해 스택으로 바꾸어 구현했다.
  • 스피드 스택도 스택으로 바꿔 구현했다. 그 전에 스택이 있는 줄 모르고 구현했었지만, 이제는 완전한 스택으로 변경했다.

그 외에도 여러가지 자잘자잘하게 리팩토링해봤다.
리팩토링하면서도 공부가 되는 느낌인 것 같다.
그리고 리팩토링에는 끝이 없다.


세줄요약

  • Linq 익숙해지자
  • 리팩토링도 꾸준히 하자
  • 내일 쉰다 ㅂㅂ
profile
게임만 하다가 개발자로

0개의 댓글