-
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