<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>wonseok.log</title>
    <link>https://math-coding.tistory.com/</link>
    <description>알고리즘, 코딩테스트 용 블로그입니당~
기술 블로그는 https://velog.io/@ows3090 에 작성하려고 합니다.</description>
    <language>ko</language>
    <pubDate>Wed, 15 Apr 2026 08:40:03 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>An effort will never betray  </managingEditor>
    <image>
      <title>wonseok.log</title>
      <url>https://tistory1.daumcdn.net/tistory/3173124/attach/15b75f34346e4fca8cfdcf8d419b1b06</url>
      <link>https://math-coding.tistory.com</link>
    </image>
    <item>
      <title>[Programmers] Lv1.숫자 짝꿍(Kotlin)</title>
      <link>https://math-coding.tistory.com/294</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;문제&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1668&quot; data-origin-height=&quot;798&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYTa6u/btsywu7Cu02/jPKtqfwsK2UIaqlOkuzD41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYTa6u/btsywu7Cu02/jPKtqfwsK2UIaqlOkuzD41/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYTa6u/btsywu7Cu02/jPKtqfwsK2UIaqlOkuzD41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYTa6u%2Fbtsywu7Cu02%2FjPKtqfwsK2UIaqlOkuzD41%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1668&quot; height=&quot;798&quot; data-origin-width=&quot;1668&quot; data-origin-height=&quot;798&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;예시&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1652&quot; data-origin-height=&quot;1250&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/p6qnw/btsyyoTFfb9/j1vM3h3MKrwlus5SYgbaq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/p6qnw/btsyyoTFfb9/j1vM3h3MKrwlus5SYgbaq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/p6qnw/btsyyoTFfb9/j1vM3h3MKrwlus5SYgbaq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp6qnw%2FbtsyyoTFfb9%2Fj1vM3h3MKrwlus5SYgbaq1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1652&quot; height=&quot;1250&quot; data-origin-width=&quot;1652&quot; data-origin-height=&quot;1250&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;풀이&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;X의 포함된 문자를 카운팅하는 배열을 하나 생성합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;그리고 Y에 포함된 문자가 X의 카운팅 배열에서 0 이상인 경우에 공통된 숫자를 담는 배열에 값을 넣습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;이후 크기가 큰 순서대로 정렬하여 반환합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1697355525405&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Solution {
    fun solution(X: String, Y: String): String {
        var answer: String = &quot;&quot;
        val counts = MutableList(10){0}
        val nums = mutableListOf&amp;lt;Int&amp;gt;()
        
        X.forEach{ 
            counts[it.toString().toInt()]++
        }
        
        Y.forEach {
            if(counts[it.toString().toInt()] &amp;gt; 0){
                nums.add(it.toString().toInt())
                counts[it.toString().toInt()]--
            }
        }
        
        return if(nums.isEmpty()) &quot;-1&quot;
        else if(nums.sum() == 0) &quot;0&quot;
        else nums.sortedDescending().joinToString(&quot;&quot;)
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;참고&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc; color: #333333; text-align: left;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666;&quot;&gt;함수형 프로그래밍 언어인 kotlin의 특성에 맞게 함수를 많이 익히자  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>SW Test/Programmers</category>
      <category>kotlin</category>
      <category>programmers</category>
      <category>숫자 짝꿍</category>
      <category>코딩테스트</category>
      <author>An effort will never betray  </author>
      <guid isPermaLink="true">https://math-coding.tistory.com/294</guid>
      <comments>https://math-coding.tistory.com/294#entry294comment</comments>
      <pubDate>Sun, 15 Oct 2023 16:39:22 +0900</pubDate>
    </item>
    <item>
      <title>[Programmers] Lv1. 덧칠하기(Kotlin)</title>
      <link>https://math-coding.tistory.com/293</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;문제&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1057&quot; data-origin-height=&quot;742&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HExv0/btsdEB8L05s/6OFKuEcH2YkTJKTssbMyD0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HExv0/btsdEB8L05s/6OFKuEcH2YkTJKTssbMyD0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HExv0/btsdEB8L05s/6OFKuEcH2YkTJKTssbMyD0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHExv0%2FbtsdEB8L05s%2F6OFKuEcH2YkTJKTssbMyD0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1057&quot; height=&quot;742&quot; data-origin-width=&quot;1057&quot; data-origin-height=&quot;742&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;예시&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1055&quot; data-origin-height=&quot;654&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DzO0P/btsdHPq9ntB/r29ohiV0ew8KoxdWyzHJnk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DzO0P/btsdHPq9ntB/r29ohiV0ew8KoxdWyzHJnk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DzO0P/btsdHPq9ntB/r29ohiV0ew8KoxdWyzHJnk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDzO0P%2FbtsdHPq9ntB%2Fr29ohiV0ew8KoxdWyzHJnk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1055&quot; height=&quot;654&quot; data-origin-width=&quot;1055&quot; data-origin-height=&quot;654&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;풀이&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;n 개의 크기 배열을 만든 후 section에서 가리키는 인덱스에는 true로 표기합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;그리고 section의 첫 번째 인덱스부터 시작하여 해당 인덱스가 true면 페인트 칠을 무조건 해야하니 answer 에 1을 더합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;이후 페인트 칠의 크기인 m 만큼 인덱스를 더한 후 하나씩 배열을 확인합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;해당 인덱스가 false면 1씩 더해 페인트 칠해야 하는 곳을 찾고 n 까지 확인하였으면 종료합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1683039932430&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Solution {
    fun solution(n: Int, m: Int, section: IntArray): Int {
        var answer: Int = 0
        val arr = Array(n+1){false}
        section.forEach{ arr[it] = true}
        var idx = section.first()
        
        while(idx &amp;lt;= n){
            if(arr[idx] == true){
                answer++
                idx += m
            }else{
                idx++
            }
        }
        
        return answer
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;참고&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc; color: #333333; text-align: left;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666;&quot;&gt;함수형 프로그래밍 언어인 kotlin의 특성에 맞게 함수를 많이 익히자  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>SW Test/Programmers</category>
      <category>Algorithm</category>
      <category>kotlin</category>
      <category>programmers</category>
      <category>덧칠하기</category>
      <author>An effort will never betray  </author>
      <guid isPermaLink="true">https://math-coding.tistory.com/293</guid>
      <comments>https://math-coding.tistory.com/293#entry293comment</comments>
      <pubDate>Wed, 3 May 2023 00:09:18 +0900</pubDate>
    </item>
    <item>
      <title>[Programmers] Lv1. 대충 만든 자판(kotlin)</title>
      <link>https://math-coding.tistory.com/292</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;문제&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;746&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GHXQg/btsdGABwyTS/Rq0ij7JzUs54mbETDLqXW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GHXQg/btsdGABwyTS/Rq0ij7JzUs54mbETDLqXW1/img.png&quot; data-alt=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/160586&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GHXQg/btsdGABwyTS/Rq0ij7JzUs54mbETDLqXW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGHXQg%2FbtsdGABwyTS%2FRq0ij7JzUs54mbETDLqXW1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1005&quot; height=&quot;746&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;746&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://school.programmers.co.kr/learn/courses/30/lessons/160586&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;예시&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;994&quot; data-origin-height=&quot;746&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/coA97D/btsdFgiZkVP/2lgZ5ZF0Bjm9JFRKPEaz81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/coA97D/btsdFgiZkVP/2lgZ5ZF0Bjm9JFRKPEaz81/img.png&quot; data-alt=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/160586&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/coA97D/btsdFgiZkVP/2lgZ5ZF0Bjm9JFRKPEaz81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcoA97D%2FbtsdFgiZkVP%2F2lgZ5ZF0Bjm9JFRKPEaz81%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;994&quot; height=&quot;746&quot; data-origin-width=&quot;994&quot; data-origin-height=&quot;746&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://school.programmers.co.kr/learn/courses/30/lessons/160586&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;풀이&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;targets 원소 하나당 최소 키를 몇 번 누르는지 알아야 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;문자열의 문자 하나씩 keymap에서 조회하여 가장 index가 작은 것을 택해야 합니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;하지만, 이 때 모든 keymap에 찾고자 하는 문자가 없을 경우는 문자열 자체를 keymap을 통해서 만들 수 없다는 말과 같습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;따라서, check 변수를 통해 하나의 문자에서 찾을 수 없을 경우는 -1을 반환하도록 해야합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;문자열을 찾을 수 있을 때 fold 연산자를 통해서 (index + 1)을 더한 값을 반환하면 됩니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1683036496171&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import kotlin.math.*

class Solution {
    fun solution(keymap: Array&amp;lt;String&amp;gt;, targets: Array&amp;lt;String&amp;gt;): IntArray = targets.map{ target -&amp;gt;
            var check = true
            val sum = target.fold(0){ acc, ch -&amp;gt; 
                val minIndex = keymap.minByOrNull{ 
                    if(it.indexOf(ch) == -1) Int.MAX_VALUE 
                    else it.indexOf(ch) 
                }?.indexOf(ch) ?: -1
                
                if(minIndex == -1) check = false
                acc + minIndex + 1
            }
            if(check) sum else -1
        }.toIntArray()
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;참고&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc; color: #333333; text-align: left;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666;&quot;&gt;함수형 프로그래밍 언어인 kotlin의 특성에 맞게 함수를 많이 익히자  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>SW Test/Programmers</category>
      <category>Algorithm</category>
      <category>kotlin</category>
      <category>minByOrNull</category>
      <category>programmers</category>
      <author>An effort will never betray  </author>
      <guid isPermaLink="true">https://math-coding.tistory.com/292</guid>
      <comments>https://math-coding.tistory.com/292#entry292comment</comments>
      <pubDate>Tue, 2 May 2023 23:15:03 +0900</pubDate>
    </item>
    <item>
      <title>[Programmers] Lv1. 바탕화면 정리(Kotlin)</title>
      <link>https://math-coding.tistory.com/291</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;문제&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1274&quot; data-origin-height=&quot;647&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMqcLt/btscBCm7Y8X/vfifwpADnatJYlfilOEuMk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMqcLt/btscBCm7Y8X/vfifwpADnatJYlfilOEuMk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMqcLt/btscBCm7Y8X/vfifwpADnatJYlfilOEuMk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMqcLt%2FbtscBCm7Y8X%2FvfifwpADnatJYlfilOEuMk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1274&quot; height=&quot;647&quot; data-origin-width=&quot;1274&quot; data-origin-height=&quot;647&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1269&quot; data-origin-height=&quot;684&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/othvR/btscBDsNHv5/KldwrjiPvn5zYX95g40aF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/othvR/btscBDsNHv5/KldwrjiPvn5zYX95g40aF0/img.png&quot; data-alt=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/161990&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/othvR/btscBDsNHv5/KldwrjiPvn5zYX95g40aF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FothvR%2FbtscBDsNHv5%2FKldwrjiPvn5zYX95g40aF0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1269&quot; height=&quot;684&quot; data-origin-width=&quot;1269&quot; data-origin-height=&quot;684&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://school.programmers.co.kr/learn/courses/30/lessons/161990&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;예시&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1188&quot; data-origin-height=&quot;418&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bp9xbu/btscJnaXhGQ/XK5skP9N8VaY0SxDy0X941/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bp9xbu/btscJnaXhGQ/XK5skP9N8VaY0SxDy0X941/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bp9xbu/btscJnaXhGQ/XK5skP9N8VaY0SxDy0X941/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbp9xbu%2FbtscJnaXhGQ%2FXK5skP9N8VaY0SxDy0X941%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1188&quot; height=&quot;418&quot; data-origin-width=&quot;1188&quot; data-origin-height=&quot;418&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1184&quot; data-origin-height=&quot;502&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vhR2P/btscKlYfIs3/YikyIjDkj9whcdRKUWxwAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vhR2P/btscKlYfIs3/YikyIjDkj9whcdRKUWxwAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vhR2P/btscKlYfIs3/YikyIjDkj9whcdRKUWxwAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvhR2P%2FbtscKlYfIs3%2FYikyIjDkj9whcdRKUWxwAk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1184&quot; height=&quot;502&quot; data-origin-width=&quot;1184&quot; data-origin-height=&quot;502&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;풀이&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;먼저 파일이 있는 곳의 y, x 좌표를 찾습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;좌상단의 y좌표는 파일들의 y 값들 중 가장 최솟값이 됩니다.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;좌상단의 x좌표도 동일하게 파일들의 x 값들 중 가장 최솟값이 됩니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;우하단의 y좌표는 파일들의 ( y + 1 ) 값들 중 가장 최댓값이 됩니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;우하단의 x좌표는 파일들의 ( x + 1 ) 값들 중 가장 최댓값이 됩니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1682436417434&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import kotlin.math.*

class Solution {
    fun solution(wallpaper: Array&amp;lt;String&amp;gt;): IntArray =
        intArrayOf(Int.MAX_VALUE, Int.MAX_VALUE, Int.MIN_VALUE, Int.MIN_VALUE).apply{
            wallpaper.forEachIndexed{ index, paper -&amp;gt; 
                paper.forEachIndexed{ pindex, ch -&amp;gt; 
                    if(ch == '#'){
                        set(0, min(get(0), index))
                        set(1, min(get(1), pindex))
                        set(2, max(get(2), index + 1))
                        set(3, max(get(3), pindex + 1))
                    }
                }
            }
        }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;참고&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc; color: #333333; text-align: left;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666;&quot;&gt;함수형 프로그래밍 언어인 kotlin의 특성에 맞게 함수를 많이 익히자  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666;&quot;&gt;intArrayOf의 set, get 함수&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>SW Test/Programmers</category>
      <category>Algorithm</category>
      <category>kotlin</category>
      <category>programmers</category>
      <category>바탕화면 정리</category>
      <author>An effort will never betray  </author>
      <guid isPermaLink="true">https://math-coding.tistory.com/291</guid>
      <comments>https://math-coding.tistory.com/291#entry291comment</comments>
      <pubDate>Wed, 26 Apr 2023 00:31:11 +0900</pubDate>
    </item>
    <item>
      <title>[Programmers] Lv1. 공원산책(kotlin)</title>
      <link>https://math-coding.tistory.com/290</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;문제&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1323&quot; data-origin-height=&quot;298&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbze6G/btsa7sedDfm/7yN7MhakKM5y73kaqIUmCk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbze6G/btsa7sedDfm/7yN7MhakKM5y73kaqIUmCk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbze6G/btsa7sedDfm/7yN7MhakKM5y73kaqIUmCk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbbze6G%2Fbtsa7sedDfm%2F7yN7MhakKM5y73kaqIUmCk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1323&quot; height=&quot;298&quot; data-origin-width=&quot;1323&quot; data-origin-height=&quot;298&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1319&quot; data-origin-height=&quot;754&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvB9hB/btsa9KyFQJV/FhUX62Xop4lWct5uCks1Rk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvB9hB/btsa9KyFQJV/FhUX62Xop4lWct5uCks1Rk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvB9hB/btsa9KyFQJV/FhUX62Xop4lWct5uCks1Rk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvB9hB%2Fbtsa9KyFQJV%2FFhUX62Xop4lWct5uCks1Rk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1319&quot; height=&quot;754&quot; data-origin-width=&quot;1319&quot; data-origin-height=&quot;754&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1314&quot; data-origin-height=&quot;730&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SOA4c/btsbaU2c0se/8dHmd2fHiyuThqe0MP8f2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SOA4c/btsbaU2c0se/8dHmd2fHiyuThqe0MP8f2K/img.png&quot; data-alt=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/172928&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SOA4c/btsbaU2c0se/8dHmd2fHiyuThqe0MP8f2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSOA4c%2FbtsbaU2c0se%2F8dHmd2fHiyuThqe0MP8f2K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1314&quot; height=&quot;730&quot; data-origin-width=&quot;1314&quot; data-origin-height=&quot;730&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://school.programmers.co.kr/learn/courses/30/lessons/172928&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;예시&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1322&quot; data-origin-height=&quot;537&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cnrK4p/btsbbskeP2H/6ov36qj3sPxtyxo27Ku0OK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cnrK4p/btsbbskeP2H/6ov36qj3sPxtyxo27Ku0OK/img.png&quot; data-alt=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/172928&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cnrK4p/btsbbskeP2H/6ov36qj3sPxtyxo27Ku0OK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcnrK4p%2FbtsbbskeP2H%2F6ov36qj3sPxtyxo27Ku0OK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1322&quot; height=&quot;537&quot; data-origin-width=&quot;1322&quot; data-origin-height=&quot;537&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://school.programmers.co.kr/learn/courses/30/lessons/172928&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;풀이&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;시뮬레이션 기법으로 하나씩 routes에 존재하는 방향, 거리만큼 이동한 후 확인하면 됩니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;isInside 함수를 미리 정의해두어 좌표 밖을 넘어가는 경우 체크&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;좌표 안에 있더라도 'X' 표기된 부분으로 장애물일 경우 체크&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;좌표 안에 있고 장애물도 아니라면 위치 이동&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1681834165110&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Solution {
    val dir = mapOf(&quot;E&quot; to (0 to 1), &quot;N&quot; to (-1 to 0), &quot;W&quot; to (0 to -1), &quot;S&quot; to (1 to 0))
    
    fun isInside(a: Int, b: Int, y:Int, x: Int) = 
        0&amp;lt;= a &amp;amp;&amp;amp; a&amp;lt; y &amp;amp;&amp;amp; 0&amp;lt;=b &amp;amp;&amp;amp; b&amp;lt;x
    
    fun solution(park: Array&amp;lt;String&amp;gt;, routes: Array&amp;lt;String&amp;gt;): IntArray {
        var y = park.indexOfFirst{ it.contains(&quot;S&quot;)}
        var x = park[y].indexOf(&quot;S&quot;)
        
        routes.forEach{
            val input = it.split(&quot; &quot;)
            var dy = y
            var dx = x
            for(i in 0 until input.last().toInt()){
                dy += dir[input.first()]!!.first
                dx += dir[input.first()]!!.second
                
                if(isInside(dy, dx, park.size, park[0].length).not()) break
                if(park[dy][dx] == 'X') break
            }
            
            if(isInside(dy,dx, park.size, park[0].length) &amp;amp;&amp;amp; park[dy][dx] != 'X'){
                y = dy
                x = dx
            }
        }
        
        
        return intArrayOf(y, x)
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;참고&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc; color: #333333; text-align: left;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666;&quot;&gt;함수형 프로그래밍 언어인 kotlin의 특성에 맞게 함수를 많이 익히자  &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light'; background-color: #ffffff; color: #666666;&quot;&gt;&lt;a href=&quot;https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/index-of-first.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/index-of-first.html&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;figure id=&quot;og_1681834342575&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;indexOfFirst - Kotlin Programming Language&quot; data-og-description=&quot; &quot; data-og-host=&quot;kotlinlang.org&quot; data-og-source-url=&quot;https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/index-of-first.html&quot; data-og-url=&quot;https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/index-of-first.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/csRg8v/hySkZtDv3R/5nI5JsuM7jxm4qkXkDeZK0/img.png?width=800&amp;amp;height=400&amp;amp;face=0_0_800_400&quot;&gt;&lt;a href=&quot;https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/index-of-first.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/index-of-first.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/csRg8v/hySkZtDv3R/5nI5JsuM7jxm4qkXkDeZK0/img.png?width=800&amp;amp;height=400&amp;amp;face=0_0_800_400');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;indexOfFirst - Kotlin Programming Language&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;kotlinlang.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>kotlin</category>
      <category>programmers</category>
      <category>공원산책</category>
      <category>시뮬레이션</category>
      <author>An effort will never betray  </author>
      <guid isPermaLink="true">https://math-coding.tistory.com/290</guid>
      <comments>https://math-coding.tistory.com/290#entry290comment</comments>
      <pubDate>Wed, 19 Apr 2023 01:12:25 +0900</pubDate>
    </item>
    <item>
      <title>[Programmers] Lv1. 추억점수(kotlin)</title>
      <link>https://math-coding.tistory.com/289</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;문제&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1090&quot; data-origin-height=&quot;656&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cbGR9b/btr91QVgJwZ/SfanBKQzCuFBRX3QhlAln0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cbGR9b/btr91QVgJwZ/SfanBKQzCuFBRX3QhlAln0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cbGR9b/btr91QVgJwZ/SfanBKQzCuFBRX3QhlAln0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcbGR9b%2Fbtr91QVgJwZ%2FSfanBKQzCuFBRX3QhlAln0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1090&quot; height=&quot;656&quot; data-origin-width=&quot;1090&quot; data-origin-height=&quot;656&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;예시&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1094&quot; data-origin-height=&quot;583&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmal3J/btr91SMlqoh/Hf27keOvgU1qDBx18OnYw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmal3J/btr91SMlqoh/Hf27keOvgU1qDBx18OnYw1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmal3J/btr91SMlqoh/Hf27keOvgU1qDBx18OnYw1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbmal3J%2Fbtr91SMlqoh%2FHf27keOvgU1qDBx18OnYw1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1094&quot; height=&quot;583&quot; data-origin-width=&quot;1094&quot; data-origin-height=&quot;583&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;풀이&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;name에 있으면 해당 점수를 더하고 없으면 0으로 더하면 답을 구할 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1681395377298&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Solution {
    fun solution(name: Array&amp;lt;String&amp;gt;, yearning: IntArray, photo: Array&amp;lt;Array&amp;lt;String&amp;gt;&amp;gt;): IntArray =
        photo.map{ names -&amp;gt; 
            names.foldIndexed(0){ index, acc, i -&amp;gt; 
                acc + if(name.indexOf(i) &amp;gt;= 0) yearning[name.indexOf(i)] else 0
            }
        }.toIntArray()
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;참고&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc; color: #333333; text-align: left;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light'; background-color: #ffffff; color: #666666;&quot;&gt;함수형 프로그래밍 언어인 kotlin의 특성에 맞게 함수를 많이 익히자  &lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light'; background-color: #ffffff; color: #666666;&quot;&gt;&lt;a href=&quot;https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/fold-indexed.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/fold-indexed.html&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;figure id=&quot;og_1681395458020&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;foldIndexed - Kotlin Programming Language&quot; data-og-description=&quot; &quot; data-og-host=&quot;kotlinlang.org&quot; data-og-source-url=&quot;https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/fold-indexed.html&quot; data-og-url=&quot;https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/fold-indexed.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bjsn4u/hyShH6MlH0/e1bnJ4asCsl6lCPodJVsTk/img.png?width=800&amp;amp;height=400&amp;amp;face=0_0_800_400&quot;&gt;&lt;a href=&quot;https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/fold-indexed.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/fold-indexed.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bjsn4u/hyShH6MlH0/e1bnJ4asCsl6lCPodJVsTk/img.png?width=800&amp;amp;height=400&amp;amp;face=0_0_800_400');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;foldIndexed - Kotlin Programming Language&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;kotlinlang.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>SW Test/Programmers</category>
      <category>foldIndexed</category>
      <category>kotlin</category>
      <category>programmers</category>
      <category>추억점수</category>
      <category>프로그래머스</category>
      <author>An effort will never betray  </author>
      <guid isPermaLink="true">https://math-coding.tistory.com/289</guid>
      <comments>https://math-coding.tistory.com/289#entry289comment</comments>
      <pubDate>Thu, 13 Apr 2023 23:18:05 +0900</pubDate>
    </item>
    <item>
      <title>[Programmers] Lv1. 달리기 경주(Kotlin)</title>
      <link>https://math-coding.tistory.com/288</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;문제&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;918&quot; data-origin-height=&quot;510&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cVNLXb/btr9qBi6S2M/3LnbCJewhh9ZckXgerKwzK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cVNLXb/btr9qBi6S2M/3LnbCJewhh9ZckXgerKwzK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cVNLXb/btr9qBi6S2M/3LnbCJewhh9ZckXgerKwzK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcVNLXb%2Fbtr9qBi6S2M%2F3LnbCJewhh9ZckXgerKwzK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;918&quot; height=&quot;510&quot; data-origin-width=&quot;918&quot; data-origin-height=&quot;510&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;예시&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;921&quot; data-origin-height=&quot;331&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cD7Aut/btr9eAT0TH3/UwuP8W5bQQoTWG9lQrmGZ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cD7Aut/btr9eAT0TH3/UwuP8W5bQQoTWG9lQrmGZ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cD7Aut/btr9eAT0TH3/UwuP8W5bQQoTWG9lQrmGZ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcD7Aut%2Fbtr9eAT0TH3%2FUwuP8W5bQQoTWG9lQrmGZ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;921&quot; height=&quot;331&quot; data-origin-width=&quot;921&quot; data-origin-height=&quot;331&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;풀이&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;Hash (map)을 사용하지 않더라도 답을 구할 수는 있습니다. callings에 나온 문자열에 해당하는 index를 indexOf 함수를 이용해서 직접 찾고 이전 값과 swap을 하면 됩니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;하지만 이 경우 시간복잡도는 callings가 1,000,000 이고 players가 50,000 이여서 시간 초과가 불가피합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;따라서 빠른 검색이 가능한 mutableMapOf 함수를 사용하여 index만 빠르게 가져온 후 value 값을 변경하면 됩니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;참고로 mutableMapOf는 LinkedHashMap을 생성하는 함수로 HashTable 형태로 구현되어 있으며 Double Linked로 Entry를 관리하여 순서도 보장됩니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1681144552498&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Solution {
    fun solution(players: Array&amp;lt;String&amp;gt;, callings: Array&amp;lt;String&amp;gt;): Array&amp;lt;String&amp;gt; {
        val map = mutableMapOf&amp;lt;String, Int&amp;gt;().apply{
            players.forEachIndexed{ index, player -&amp;gt; 
                put(player, index)
            }  
        }
        
        callings.forEach{
            var index = map[it]!!
            val temp = players[index-1]
            map[it] = index - 1
            map[temp] = index
            players[index-1] = players[index]
            players[index] = temp
        }
        return players
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;참고&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc; color: #333333; text-align: left;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light'; background-color: #ffffff; color: #666666;&quot;&gt;함수형 프로그래밍 언어인 kotlin의 특성에 맞게 함수를 많이 익히자  &lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light'; background-color: #ffffff; color: #666666;&quot;&gt;&lt;a href=&quot;https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-linked-hash-map/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-linked-hash-map/&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;figure id=&quot;og_1681144833773&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;LinkedHashMap - Kotlin Programming Language&quot; data-og-description=&quot; &quot; data-og-host=&quot;kotlinlang.org&quot; data-og-source-url=&quot;https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-linked-hash-map/&quot; data-og-url=&quot;https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-linked-hash-map/index.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dcmoDI/hySeYgR9Z2/CnP7jnL4wV025mgUK9yxVK/img.png?width=800&amp;amp;height=400&amp;amp;face=0_0_800_400&quot;&gt;&lt;a href=&quot;https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-linked-hash-map/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-linked-hash-map/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dcmoDI/hySeYgR9Z2/CnP7jnL4wV025mgUK9yxVK/img.png?width=800&amp;amp;height=400&amp;amp;face=0_0_800_400');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;LinkedHashMap - Kotlin Programming Language&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;kotlinlang.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>SW Test/Programmers</category>
      <category>kotlin</category>
      <category>LinkedHashMap</category>
      <category>programmers</category>
      <author>An effort will never betray  </author>
      <guid isPermaLink="true">https://math-coding.tistory.com/288</guid>
      <comments>https://math-coding.tistory.com/288#entry288comment</comments>
      <pubDate>Tue, 11 Apr 2023 01:40:52 +0900</pubDate>
    </item>
    <item>
      <title>[Programmers] Lv2.모음사전(kotlin)</title>
      <link>https://math-coding.tistory.com/287</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;문제&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1129&quot; data-origin-height=&quot;232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cG9y4Z/btrPgMr14XH/Mw5aXY8w6D7fQ3OPbnAlp1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cG9y4Z/btrPgMr14XH/Mw5aXY8w6D7fQ3OPbnAlp1/img.png&quot; data-alt=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/84512&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cG9y4Z/btrPgMr14XH/Mw5aXY8w6D7fQ3OPbnAlp1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcG9y4Z%2FbtrPgMr14XH%2FMw5aXY8w6D7fQ3OPbnAlp1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1129&quot; height=&quot;232&quot; data-origin-width=&quot;1129&quot; data-origin-height=&quot;232&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://school.programmers.co.kr/learn/courses/30/lessons/84512&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;예시&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1117&quot; data-origin-height=&quot;563&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dGpZHk/btrPjGc9Mhk/xUb92oG8oKXJBJzz0Hvmx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dGpZHk/btrPjGc9Mhk/xUb92oG8oKXJBJzz0Hvmx0/img.png&quot; data-alt=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/84512&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dGpZHk/btrPjGc9Mhk/xUb92oG8oKXJBJzz0Hvmx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdGpZHk%2FbtrPjGc9Mhk%2FxUb92oG8oKXJBJzz0Hvmx0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1117&quot; height=&quot;563&quot; data-origin-width=&quot;1117&quot; data-origin-height=&quot;563&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://school.programmers.co.kr/learn/courses/30/lessons/84512&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;풀이&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;백트래킹 기법을 사용하면 쉽게 풀 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1666430506049&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Solution {
    val list = mutableSetOf&amp;lt;String&amp;gt;()
    
    fun getResult(word: String,idx: Int, str: String){
        if(idx == str.length){
            list.add(word)
        }else{
            for(ch in str){
                getResult(word + ch, idx+1, str)
            }
            getResult(word, idx+1, str)
        }
    }
    
    fun solution(word: String): Int {
        getResult(&quot;&quot;, 0, &quot;AEIOU&quot;)
        return list.toList().sorted().indexOf(word)
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;참고&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; font-family: 'Noto Sans Light';&quot;&gt;함수형 프로그래밍 언어인 kotlin의 특성에 맞게 함수를 많이 익히자  &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>SW Test/Programmers</category>
      <category>Algorithm</category>
      <category>kotlin</category>
      <category>programmers</category>
      <category>모음사전</category>
      <author>An effort will never betray  </author>
      <guid isPermaLink="true">https://math-coding.tistory.com/287</guid>
      <comments>https://math-coding.tistory.com/287#entry287comment</comments>
      <pubDate>Sat, 22 Oct 2022 18:22:43 +0900</pubDate>
    </item>
    <item>
      <title>[Programmers] Lv2. 연속 부분 수열(kotlin)</title>
      <link>https://math-coding.tistory.com/286</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;문제&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;667&quot; data-origin-height=&quot;735&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EzfH0/btrPh9mqKcs/Rp6B1xjkjW8Ab6Jzb2kkOk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EzfH0/btrPh9mqKcs/Rp6B1xjkjW8Ab6Jzb2kkOk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EzfH0/btrPh9mqKcs/Rp6B1xjkjW8Ab6Jzb2kkOk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEzfH0%2FbtrPh9mqKcs%2FRp6B1xjkjW8Ab6Jzb2kkOk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;667&quot; height=&quot;735&quot; data-origin-width=&quot;667&quot; data-origin-height=&quot;735&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1196&quot; data-origin-height=&quot;63&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CDD1f/btrPhpXmpYH/MPm4R7m1PTRkuajWJxnMOk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CDD1f/btrPhpXmpYH/MPm4R7m1PTRkuajWJxnMOk/img.png&quot; data-alt=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/131701&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CDD1f/btrPhpXmpYH/MPm4R7m1PTRkuajWJxnMOk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCDD1f%2FbtrPhpXmpYH%2FMPm4R7m1PTRkuajWJxnMOk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1196&quot; height=&quot;63&quot; data-origin-width=&quot;1196&quot; data-origin-height=&quot;63&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://school.programmers.co.kr/learn/courses/30/lessons/131701&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예시&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1204&quot; data-origin-height=&quot;394&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/djV8Km/btrPhp38sR5/pOtOLeleCkajRe5U7dT97K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/djV8Km/btrPhp38sR5/pOtOLeleCkajRe5U7dT97K/img.png&quot; data-alt=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/131701&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/djV8Km/btrPhp38sR5/pOtOLeleCkajRe5U7dT97K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdjV8Km%2FbtrPhp38sR5%2FpOtOLeleCkajRe5U7dT97K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1204&quot; height=&quot;394&quot; data-origin-width=&quot;1204&quot; data-origin-height=&quot;394&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://school.programmers.co.kr/learn/courses/30/lessons/131701&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;풀이&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt; 원형의 모양을 굳이 생각할 필요 없이 하나의 리스트를 연속으로 붙인 후 처음 리스트의 갯수만큼만 부분 수열을 보시면 됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1666426605596&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Solution {
    fun solution(elements: IntArray): Int {
        var answer = mutableSetOf&amp;lt;Int&amp;gt;()
        val list = elements.toList() + elements.toList()
        
        for(i in 1..elements.size){
            for(j in 0..(list.size -i)){
                answer.add(list.subList(j, j+i).sum())
            }
        }
        
        return answer.size
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;참고&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666;&quot;&gt;함수형 프로그래밍 언어인 kotlin의 특성에 맞게 함수를 많이 익히자  &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666;&quot;&gt;mutableSetOf는 Java의 LinkedHashSet 생성합니다. LinkedHashSet은 LinkedHashMap과 유사하며 순서 보장하기 위해 Double Linked List를 별도 관리합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>SW Test/Programmers</category>
      <category>Algorithm</category>
      <category>kotlin</category>
      <category>mutableSetOf</category>
      <category>programmers</category>
      <category>연속 부분 수열 합</category>
      <author>An effort will never betray  </author>
      <guid isPermaLink="true">https://math-coding.tistory.com/286</guid>
      <comments>https://math-coding.tistory.com/286#entry286comment</comments>
      <pubDate>Sat, 22 Oct 2022 18:20:22 +0900</pubDate>
    </item>
    <item>
      <title>[Programmers] Lv2. 피로도(kotlin)</title>
      <link>https://math-coding.tistory.com/285</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;문제&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1161&quot; data-origin-height=&quot;489&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YguFX/btrPfmnr3D8/2Uk5HV1CReLkQkj8eKfXUk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YguFX/btrPfmnr3D8/2Uk5HV1CReLkQkj8eKfXUk/img.png&quot; data-alt=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/87946&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YguFX/btrPfmnr3D8/2Uk5HV1CReLkQkj8eKfXUk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYguFX%2FbtrPfmnr3D8%2F2Uk5HV1CReLkQkj8eKfXUk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1161&quot; height=&quot;489&quot; data-origin-width=&quot;1161&quot; data-origin-height=&quot;489&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://school.programmers.co.kr/learn/courses/30/lessons/87946&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예시&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1153&quot; data-origin-height=&quot;642&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSlgXL/btrPflWpiFj/e2x8cFscGjJh5kqe0hcM21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSlgXL/btrPflWpiFj/e2x8cFscGjJh5kqe0hcM21/img.png&quot; data-alt=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/87946&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSlgXL/btrPflWpiFj/e2x8cFscGjJh5kqe0hcM21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSlgXL%2FbtrPflWpiFj%2Fe2x8cFscGjJh5kqe0hcM21%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1153&quot; height=&quot;642&quot; data-origin-width=&quot;1153&quot; data-origin-height=&quot;642&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://school.programmers.co.kr/learn/courses/30/lessons/87946&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;풀이&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;백트래킹 기법을 이용하면 손쉽게 풀 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1666425892833&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import kotlin.math.*

class Solution {
    var answer = -1
    
    fun getResult(k: Int, dungeons: Array&amp;lt;IntArray&amp;gt;, check: List&amp;lt;Boolean&amp;gt;){
        var flag = false
        for(i in 0 until check.size){
            if(!check[i] &amp;amp;&amp;amp; k &amp;gt;= dungeons[i][0]){
                flag = true
                getResult(k-dungeons[i][1], dungeons, check.toMutableList().apply{ this[i] = true })
            }
        }
        
        if(!flag){
            answer = max(answer, check.count{it})
        }
    }
    
    fun solution(k: Int, dungeons: Array&amp;lt;IntArray&amp;gt;): Int {
        getResult(k, dungeons, List(dungeons.size){false})
        return answer
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;참고&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666;&quot;&gt;함수형 프로그래밍 언어인 kotlin의 특성에 맞게 함수를 많이 익히자  &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>SW Test/Programmers</category>
      <category>Algorithm</category>
      <category>kotlin</category>
      <category>programmers</category>
      <category>피로도</category>
      <author>An effort will never betray  </author>
      <guid isPermaLink="true">https://math-coding.tistory.com/285</guid>
      <comments>https://math-coding.tistory.com/285#entry285comment</comments>
      <pubDate>Sat, 22 Oct 2022 17:07:42 +0900</pubDate>
    </item>
  </channel>
</rss>