본문 바로가기

Kotlin/Exercise16

완벽한 숫자 - 자연수에대한 완벽한 숫자 - 자연수에대한Nicomachus (60 - 120 CE) 분류 체계에 따라 번호가 완전하고 풍부하며 결핍되었는지 확인하십시오. 그리스 수학자 인 니코 마 쿠스 (Nicomachus) 는 자연수에 대한 분류 체계를 고안하여 각자가 분량의 합계 에 기초하여 완벽 하고 풍부 하거나 부족한 범주에 속하는 것으로 나타 냈습니다 . 분량 합은 수 자체를 포함하지 않는 수의 합계로 정의됩니다. 예를 들어, 15의 분량 합은 (1 + 3 + 5) = 9완벽 : 분량 합 = 번호6은 (1 + 2 + 3) = 6이므로 완벽한 수입니다.28은 (1 + 2 + 4 + 7 + 14) = 28이므로 완벽한 수입니다.풍부 : 분랑 합> 수12는 (1 + 2 + 3 + 4 + 6) = 16이기 때문에 풍부한 수입니다... 2019. 3. 27.
비밀 악수 - 10진수와 2진수 비밀 악수 - 10진수와 2진수2진수에 관해서는 당신은 비밀스런 "악수"를 내놓기로 결정했습니다.1 = wink 10 = double blink 100 = close your eyes 1000 = jump 10000 = Reverse the order of the operations in the secret handshake. 십진수가 주어지면 비밀 핸드 쉐이크를위한 적절한 이벤트 시퀀스로 변환합니다.다음은 몇 가지 예입니다.입력 3이 주어지면,이 함수는 3이 11 진법이므로 배열 [ "wink", "double blink"]을 반환합니다.주어진 입력 값 19가 주어지면이 함수는 배열 [ "double blink", "wink"]을 반환 할 것입니다. 19가 이진수로 10011이기 때문입니다. 16 (이.. 2019. 3. 20.
정사각형의 차이 정사각형의 차이 합계의 제곱과 첫 번째 N 개의 자연수의 제곱의 합계 사이의 차이점을 찾습니다.처음 10 개의 자연수의 합의 제곱은 (1 + 2 + ... + 10) ² = 55² = 3025입니다.처음 10 개의 자연수의 제곱의 합은 1² + 2² + ... + 10² = 385입니다.따라서 처음 10 개의 자연수 합계의 제곱과 처음 10 개의 자연수 제곱 합계의 차이는 3025 - 385 = 2640입니다. TestCodeclass SquaresTest { @Test fun squareOfSum1() { assertEquals(1, Squares(1).squareOfSum()) } @Test fun squareOfSum5() { assertEquals(225, Squares(5).squareOfSum.. 2019. 3. 17.
스크래블 스코어 - 주어진 단어에대하여 점수 계산하기 스크래블 스코어 - 주어진 단어에대하여 점수 계산하기 문자의 값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.
어구를 약어로 변경하기 어구를 약어로 변경하기 어구를 약어로 변경해보도록 하겠습니다. 예를들어 Portable Network Graphics 라면 PNG로 줄일수있게됩니다 . TestCode @Test fun fromTitleCasedPhrases() { val phrase = "Portable Network Graphics" val expected = "PNG" assertEquals(expected, Acronym.generate(phrase)) } @Test fun fromOtherTitleCasedPhrases() { val phrase = "Ruby on Rails" val expected = "ROR" assertEquals(expected, Acronym.generate(phrase)) } @Test fun fro.. 2019. 3. 14.
스트링 뒤집기 스트링 뒤집기 스트링을 거꾸로 뒤집는 방법! TestCodeclass ReverseStringTest { @Test fun testAnEmptyString() { assertEquals("", reverse("")) } @Test fun testAWord() { assertEquals("tobor", reverse("robot")) } @Test fun testACapitalizedWord() { assertEquals("nemaR", reverse("Ramen")) } @Test fun testASentenceWithPunctuation() { assertEquals("!yrgnuh m'I", reverse("I'm hungry!")) } @Test fun testAPalindrome() { asser.. 2019. 3. 13.
우주 시대 - 행나이를 주었을때, 나이를 초로 바꾸어보기 우주 시대 - 행나이를 주었을때,나이를 초로 바꾸어보기 Question - 나이를 주면 몇 초가 될지 계산하십시오.지구 : 궤도주기 365.25일 또는 31557600 초수성 : 궤도주기 0.2408467 지구의년금성 : 궤도주기 0.61519726 지구의년화성 : 궤도주기 1.8808158 지구의년목성 : 궤도주기 11.862615 지구의년토성 : 궤도 기간 29.447498 지구의년천왕성 : 궤도주기 84.016846 지구의년해왕성 : 궤도주기 164.79132 지구의년따라서 누군가가 1,000,000 초의 나이가 들었다고 말하면, 지구 나이가 31.69라고 말할 수 있어야합니다. TestCode@Test fun ageOnEarth() { val age = SpaceAge(1000000000) ass.. 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.
RNA를 DNA로 바꾸기 RNA를 DNA로 바꾸기 DNA 가닥이 주어지면 RNA 보체를 돌려줍니다DNA와 RNA 가닥은 모두 핵산 염기 서열입니다.DNA에서 발견되는 4 개의 뉴클레오타이드는 아데닌 ( A ), 시토신 ( C), 구아닌 ( G ) 및 티민 ( T )입니다.RNA에서 발견되는 4 개의 뉴클레오티드는 아데닌 ( A ), 시토신 ( C ), 구아닌 ( G ) 및 우라실 ( U )입니다.DNA 가닥이 주어지면, 전사 된 RNA 가닥은 각 뉴클레오타이드를 보체로 대체하여 형성됩니다 :G -> CC -> GT -> AA -> U TestCodeclass RnaTranscriptionTest { @Test fun cytosineComplementIsGuanine() { assertEquals("G", transcribeToR.. 2019. 3. 3.
Twofer - 스트링 리턴하기 Twofer - 스트링 리턴하기 TestCode1234567891011121314151617181920212223class TwoferTest { @Test fun noNameGiven() { assertEquals("One for you, one for me.", twofer()) } @Test fun aNameGiven() { assertEquals("One for Alice, one for me.", twofer("Alice")) } @Test fun anotherNameGiven() { assertEquals("One for Bob, one for me.", twofer("Bob")) } @Test fun emptyStringGiven() { assertEquals("One for , one fo.. 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.
Hamming -DNA 차이 Hamming -DNA 차이 두 DNA 가닥의 해밍 차이를 계산해보는 테스트입니다.돌연변이는 단순히 핵산, 특히 DNA 생성 또는 복제과정에서 발생하는 실수입니다. 핵산은 세포기능에 필수적이기 때문에 돌연변이는 세포 전체에 파급효과를 일으키는 경향이 있습니다. 돌연변이는 기술적으로 실수이지만, 매우 드문 돌연변이는 세포에 유익한 특성을 부여할 수 있습니다. 공통 조상과 함께 서로다른 게놈으로 부터 얻은 2개의 상동 DNA 가닥 사이의 차이 수를 세어 두 가닥 사이의 진화경로에서 발생할수 있는 돌연변이의 최소 수를 측정합니다 이를 해밍거리(Hamming distance)라고 합니다. GAGCCTACTAACGGGAT CATCGTAATGACGGCCT ^ ^ ^ ^ ^ ^^ 위의 DNA가닥 사이의 해밍거리는 7.. 2019. 3. 3.
영어에서 돼지 라틴어로 번역하기 영어에서 돼지 라틴어로 번역하기 돼지라틴어란? 돼지 라틴어 (Pig Latin)는 혼란스럽게 만들려는 아동용 언어입니다. 몇 가지 간단한 규칙 (아래)을 준수하지만 신속하게 말하면 비 아동 (및 모국어가 아닌 사람들)이 이해하기가 정말 어렵습니다. 규칙 1 : 단어가 모음 소리로 시작하는 경우 "ay"소리를 단어 끝에 추가하십시오. 단어의 시작 부분에있는 "xr"과 "yt"는 모음 소리를 만듭니다 (예 : "xray"-> "xrayay", "yttria"-> "yttriaay").규칙 2 : 단어가 자음으로 시작하는 경우 단어의 끝으로 이동 한 다음 단어 끝에 "ay"소리를 추가하십시오. 자음은 여러 개의 자음으로 구성 될 수 있습니다 (예 : "chair"-> "airchay").규칙 3 : 단어가 자.. 2019. 2. 24.
Isogram인지아닌지 판단하기 Isogram인지아닌지 판단하기 isogram이란 ? 아이 서 그램 (또한 "패턴이 아닌 단어"로 알려진)는이다 logological 반복 편지 쓰기없는 단어 나 구문 용어. 또한 어떤 사람들은 각 문자가 같은 횟수만큼 나타나는 단어 나 구를 의미하기도합니다. 반드시 한 번만 쓰는 것은 아닙니다. [1] 편리한 단어 자체가있어 단어 모두 감각의 아이 서 그램이다 testCode@RunWith(Parameterized::class)class IsogramTest(val input: String, val expectedOutput: Boolean) { companion object { @JvmStatic @Parameterized.Parameters(name = "{index}: isogram({0})={1.. 2019. 2. 24.
Raindrop - 숫자를 문자열로 변환하기 Raindrop - 숫자를 문자열로 변환하기 번호가 3 인 경우 'Pling'을 출력하십시오.숫자가 5 인 경우 'Plang'을 출력하십시오.숫자가 7 인 경우 'Plong'을 출력하십시오.숫자에 3, 5 또는 7이없는 경우 숫자의 자릿수를 똑바로 전달하십시오.예제들28의 요인은 1, 2, 4, 7 , 14, 28입니다.빗방울 - 말로, 이것은 단순한 "플롱 (Plong)"이 될 것입니다.30의 요인은 1, 2, 3 , 5 , 6, 10, 15, 30입니다.빗방울 - 말로, 이것은 "PlingPlang"이 될 것입니다.34는 4 가지 요소, 즉 1, 2, 17 및 34가 있습니다.빗방울이 말하면, 이것은 "34"가 될 것입니다.b testcode@RunWith(Parameterized::class)cla.. 2019. 2. 23.
Pangram인지 판단하기 Pangram인지 판단하기 Pangram 이란? 팬그램 (그리스어: παν γράμμα 판 그람마[*], '모든 글자'라는 뜻)은 알파벳의 모든 글자들을 사용해서 만든 문장을 뜻한다 - https://ko.wikipedia.org/wiki/%ED%8C%AC%EA%B7%B8%EB%9E%A8 kotlin test 코드를 통해서 Pangram인지 아닌지 판단해보자! testcode@Test fun emptySentence() { assertFalse(Pangram.isPangram("")) } @Test fun perfectLowercasePangram() { assertTrue(Pangram.isPangram("abcdefghijklmnopqrstuvwxyz")) } @Test fun lowercasePan.. 2019. 2. 23.