가변인자 알아보기 ( ... , vararg
가변 인자 알아보기 자바의 가변 인자와 코틀린의 가변 인자를 비교하여 알아보도록 하겠습니다. Java의 가변인자 자바는 오버 로딩을 통하여 매개변수의 개수와 타입이 달라도 같은 이름의 메서드명으로 동일 기능을 구현할 수 있습니다. 그런데.. String divide(String s1, String s2){...} String divide(String s1, String s2, String s3){...} String divide(String s1, String s2, String s3, String s4){...} String divide(String s1, String s2, String s3, String s4, String s5){...} 위와 같이 매개변수가 끝없이 많아진다면..? 위 같은 문제를..
2019. 10. 18.
고차함수 (Higher-order-function) ,1급시민[객체,함수] (First-Class Citizen)
고차함수 (Higher-order-function) , fold ,reduce.. 고차함수란 ? 고차함수에 대하여 알아보자 고차함수는 아래의 2가지 조건을 만족하는 함수입니다. 함수를 파라미터로 받는 함수 함수를 리턴하는 함수 1. 함수를 파라미터로 받는 함수 예 class HighOrderFunctionTest { fun simpleHOF(sum: (Int, Int) -> Int, a: Int, b: Int): Int = sum(a, b) @Test fun highOrderFunctionTest() { val result = simpleHOF({ x, y -> x + y }, 10, 20) Assert.assertEquals(30, result) } } simpleHOF 함수는 Int,Int를 받아서 ..
2019. 8. 29.
스크래블 스코어 - 주어진 단어에대하여 점수 계산하기
스크래블 스코어 - 주어진 단어에대하여 점수 계산하기 문자의 값Letter Value A, E, I, O, U, L, N, R, S, T 1 D, G 2 B, C, M, P 3 F, H, V, W, Y 4 K 5 J, X 8 Q, Z 10 ex) cabbage (양배추) 는 14점의 가치를 가집니다 .- c 3점 ,a *2 2점, b *2 6점, g 2점 , e 1점 TestCode@RunWith(Parameterized::class)class ScrabbleScoreTest(val input: String, val expectedOutput: Int) { companion object { @JvmStatic @Parameterized.Parameters(name = "{index}: scoreWord(..
2019. 3. 17.
Collection에 대하여 -3 collection에 적용할수 있는 함수들
Collection에 대하여 -3 출처 - https://mdwgti16.github.io/kotlin/kotlin-collection-api2/# zip@Test fun zip() { val fruitList = listOf("strawberry", "grape", "pineapple", "banana", "apple") val priceList = listOf(1500,1000,2000,700,500,10000) assertEquals(listOf("strawberry is 1500won", "grape is 1000won", "pineapple is 2000won", "banana is 700won", "apple is 500won"), fruitList.zip(priceList).map {"${i..
2019. 3. 9.
10억초 더하기
10억초 더하기지금 순간에서 10억초를 더한 시간은 언제일까요 ? 계산해보도록 하겠습니다 . TestCodeclass GigasecondTest { @Test fun modernTime() { val gigaSecond = Gigasecond(LocalDate.of(2011, Month.APRIL, 25)) assertEquals(LocalDateTime.of(2043, Month.JANUARY, 1, 1, 46, 40), gigaSecond.date) } @Ignore @Test fun afterEpochTime() { val gigaSecond = Gigasecond(LocalDate.of(1977, Month.JUNE, 13)) assertEquals(LocalDateTime.of(2009, Mon..
2019. 3. 3.
윤년 찾기
윤년 찾기 윤년이란 ? - 태양력의 윤년현재 전 세계 대부분의 나라에서 쓰는 그레고리력은 4년에 반드시 하루씩 윤날(2월 29일)을 추가하는 율리우스력을 보완한 것으로, 태양년과의 편차를 줄이기 위해 율리우스력의 400년에서 3일(세 번의 윤년)을 뺐다.그레고리력의 정확한 윤년 규칙은 다음과 같다.서력 기원 연수가 4로 나누어떨어지는 해는 윤년으로 한다. (1992년, 1996년, 2004년, 2008년, 2012년, 2016년, 2020년, 2024년, 2028년 ...)서력 기원 연수가 4, 100으로 나누어떨어지는 해는 평년으로 한다. (1900년, 2100년, 2200년, 2300년, 2500년...)서력 기원 연수가 4, 100, 400으로 나누어떨어지는 해는 윤년으로 둔다. (1600년, 20..
2019. 3. 3.