ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • pascal_list [reverse_challenge]
    myCode/ShortestCodeChallenge 2016. 7. 26. 21:08

    문득 생각해보면 쉬워보이는 문제지만 코딩을 하면서 '과연 이 방법이 최선일까?' 하는 생각이 들 때가 있다.


    이런 경우를 최근들어 자주 경험하고 느껴보면서 ' 멋지고 간드러지게 생각하는 능력' 을 키울 필요성을 느낀다.




    다음과 같은 문제를 예로 들어보자.



    input으로 특정 n 값이 주어지면 파스칼의 삼각형과 비슷한 패턴으로 다음과 같이 벡터를 출력해야한다.




    n=1 일때


    [1]



    n=2 일때


    [1,1]



    n=5 일때


    [1,2,3,2,1]



    n=6 일땐


    [1,2,3,3,2,1]



    이런 식으로..








    정말 간단하게 바로 머릿속에 떠오르는 방법은 이거다.




    n이 짝수, 홀수일 경우를 나눠서 for문을 통해 순차적으로 벡터에 때려박는다.


    잘 돌아간다. 누구나 이해할 수 있을 것이다.


    하지만 너무 길다. 229자나 된다. 그리고 간지도 안난다.



    조금 더 멋지게 코딩하는 방법은 없을까?










    상위권에 있는 다른 사람의 코드다.




    함수 정의 부분을 저런식으로 하는 이유는 리턴하는 벡터의 선언 부분을 조금이라도 줄이려고 한 것 같다.


    이건 정말로 단순 길이를 줄이기 위한 좀 쓸데없어 보이는 방법이므로 제끼고


    눈에 띄는건 내가 짰던 4번이나 반복되는 for문이 포함된 코드를 단 하나로 줄인 것.



    삼항 연산자를 이용해서

    'myCode > ShortestCodeChallenge' 카테고리의 다른 글

    GetDuplicates  (0) 2016.08.10
    Fact (Reverse Challenge)  (0) 2016.07.04
    EvenNumbers  (0) 2016.07.04
    Reverse_t9  (0) 2016.06.08
    Cipher_Zeroes [Decimal to Binary]  (0) 2016.06.04
Designed by Tistory.