<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>제이슨의 개발이야기</title>
    <link>https://jason-api.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Sun, 12 Apr 2026 15:25:58 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>제이쓰은</managingEditor>
    <image>
      <title>제이슨의 개발이야기</title>
      <url>https://tistory1.daumcdn.net/tistory/4496796/attach/7006d73053f34f0c84423b1feac79888</url>
      <link>https://jason-api.tistory.com</link>
    </image>
    <item>
      <title>프로그래머스 코틀린 행렬 테두리 회전하기</title>
      <link>https://jason-api.tistory.com/176</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;프로그래머스.png&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;225&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/344tH/btrAPkjDMQB/bcLuWimkBTfSvWrq6PCPa0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/344tH/btrAPkjDMQB/bcLuWimkBTfSvWrq6PCPa0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/344tH/btrAPkjDMQB/bcLuWimkBTfSvWrq6PCPa0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F344tH%2FbtrAPkjDMQB%2FbcLuWimkBTfSvWrq6PCPa0%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;225&quot; height=&quot;225&quot; data-filename=&quot;프로그래머스.png&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;225&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/77485&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://programmers.co.kr/learn/courses/30/lessons/77485&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1651297071486&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;코딩테스트 연습 - 행렬 테두리 회전하기&quot; data-og-description=&quot;6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3]&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/77485&quot; data-og-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/77485&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/YJsvt/hyOdEf08Er/jD9qe1g132kIZmgHcei4hK/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/mkJJh/hyOdA5KDxF/alnHNAuPM31Z5kyYyvgyF0/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/nAHnL/hyOdytipBr/KGuErLP2nGmJcFpdOrJrv0/img.png?width=672&amp;amp;height=680&amp;amp;face=0_0_672_680&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/77485&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/77485&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/YJsvt/hyOdEf08Er/jD9qe1g132kIZmgHcei4hK/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/mkJJh/hyOdA5KDxF/alnHNAuPM31Z5kyYyvgyF0/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/nAHnL/hyOdytipBr/KGuErLP2nGmJcFpdOrJrv0/img.png?width=672&amp;amp;height=680&amp;amp;face=0_0_672_680');&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;코딩테스트 연습 - 행렬 테두리 회전하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3]&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&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;
&lt;ul id=&quot;tab&quot; 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;div data-challengeable-id=&quot;5646&quot; data-challengeable-type=&quot;algorithm&quot; data-algorithm-type=&quot;standard&quot; data-language=&quot;kotlin&quot; data-user-id=&quot;248764&quot; data-interface-type=&quot;function&quot; data-challenge-web-evaluation-code=&quot;&quot;&gt;
&lt;div&gt;
&lt;div id=&quot;tour2&quot;&gt;
&lt;div&gt;문제 설명
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;rows x columns 크기인 행렬이 있습니다. 행렬에는 1부터 rows x columns까지의 숫자가 한 줄씩 순서대로 적혀있습니다. 이 행렬에서 직사각형 모양의 범위를 여러 번 선택해, 테두리 부분에 있는 숫자들을 시계방향으로 회전시키려 합니다. 각 회전은 (x1, y1, x2, y2)인 정수 4개로 표현하며, 그 의미는 다음과 같습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;x1 행 y1 열부터 x2 행 y2 열까지의 영역에 해당하는 직사각형에서 테두리에 있는 숫자들을 한 칸씩 시계방향으로 회전합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음은 6 x 6 크기 행렬의 예시입니다.&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;664&quot; data-origin-height=&quot;662&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cox5lo/btrARKPi7D0/Ep3pxOLzJFdaKyeL78kJK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cox5lo/btrARKPi7D0/Ep3pxOLzJFdaKyeL78kJK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cox5lo/btrARKPi7D0/Ep3pxOLzJFdaKyeL78kJK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcox5lo%2FbtrARKPi7D0%2FEp3pxOLzJFdaKyeL78kJK1%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;664&quot; height=&quot;662&quot; data-origin-width=&quot;664&quot; data-origin-height=&quot;662&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;이 행렬에 (2, 2, 5, 4) 회전을 적용하면, 아래 그림과 같이 2행 2열부터 5행 4열까지 영역의 테두리가 시계방향으로 회전합니다. 이때, 중앙의 15와 21이 있는 영역은 회전하지 않는 것을 주의하세요.&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;672&quot; data-origin-height=&quot;680&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cAzsEj/btrASvjMHqX/RRd7K7zjEQBuNKh34QCdM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cAzsEj/btrASvjMHqX/RRd7K7zjEQBuNKh34QCdM0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cAzsEj/btrASvjMHqX/RRd7K7zjEQBuNKh34QCdM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcAzsEj%2FbtrASvjMHqX%2FRRd7K7zjEQBuNKh34QCdM0%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;672&quot; height=&quot;680&quot; data-origin-width=&quot;672&quot; data-origin-height=&quot;680&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;행렬의 세로 길이(행 개수) rows, 가로 길이(열 개수) columns, 그리고 회전들의 목록 queries가 주어질 때, 각 회전들을 배열에 적용한 뒤, 그 회전에 의해 위치가 바뀐 숫자들 중&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;u&gt;&lt;b&gt;가장 작은 숫자들을 순서대로 배열에 담아&lt;/b&gt;&lt;/u&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;return 하도록 solution 함수를 완성해주세요.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;제한사항
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;rows는 2 이상 100 이하인 자연수입니다.&lt;/li&gt;
&lt;li&gt;columns는 2 이상 100 이하인 자연수입니다.&lt;/li&gt;
&lt;li&gt;처음에 행렬에는 가로 방향으로 숫자가 1부터 하나씩 증가하면서 적혀있습니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;즉, 아무 회전도 하지 않았을 때, i 행 j 열에 있는 숫자는 ((i-1) x columns + j)입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;queries의 행의 개수(회전의 개수)는 1 이상 10,000 이하입니다.&lt;/li&gt;
&lt;li&gt;queries의 각 행은 4개의 정수 [x1, y1, x2, y2]입니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;x1 행 y1 열부터 x2 행 y2 열까지 영역의 테두리를 시계방향으로 회전한다는 뜻입니다.&lt;/li&gt;
&lt;li&gt;1 &amp;le; x1 &amp;lt; x2 &amp;le; rows, 1 &amp;le; y1 &amp;lt; y2 &amp;le; columns입니다.&lt;/li&gt;
&lt;li&gt;모든 회전은 순서대로 이루어집니다.&lt;/li&gt;
&lt;li&gt;예를 들어, 두 번째 회전에 대한 답은 첫 번째 회전을 실행한 다음, 그 상태에서 두 번째 회전을 실행했을 때 이동한 숫자 중 최솟값을 구하면 됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;입출력 예시rowscolumnsqueriesresult
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;[[2,2,5,4],[3,3,6,6],[5,1,6,3]]&lt;/td&gt;
&lt;td&gt;[8, 10, 25]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;[[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]]&lt;/td&gt;
&lt;td&gt;[1, 1, 5, 3]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;97&lt;/td&gt;
&lt;td&gt;[[1,1,100,97]]&lt;/td&gt;
&lt;td&gt;[1]&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 문제는&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;테두리 회전.jpeg&quot; data-origin-width=&quot;1248&quot; data-origin-height=&quot;780&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SbyUQ/btrATSevz8I/WTQJ9KjyrGwjTPg6XqgRFK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SbyUQ/btrATSevz8I/WTQJ9KjyrGwjTPg6XqgRFK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SbyUQ/btrATSevz8I/WTQJ9KjyrGwjTPg6XqgRFK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSbyUQ%2FbtrATSevz8I%2FWTQJ9KjyrGwjTPg6XqgRFK%2Fimg.jpg&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;500&quot; height=&quot;313&quot; data-filename=&quot;테두리 회전.jpeg&quot; data-origin-width=&quot;1248&quot; data-origin-height=&quot;780&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에 이미지 처럼&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1~4번 의 각 조건들을 세워서 반복하면 테두리 회전을 쉽게 구현 할 수 있습니다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1번 같은 경우&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[[2,2,5,4],[3,3,6,6],[5,1,6,3]] 에서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2,2,5,4 의 좌표의 테두리를 회전하게 된다면&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;arr[x][y] 라고 가정 할 때&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1번은&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;x==2 이면서 y!=4 인 경우&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;y++ 을 하면&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1번 테두리를 하나씩 접근 할 수 있습니다!&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;나머지 2,3,4, 번 테두리 역시 앞서 1번 처럼 구현하면 쉽게 풀 수 있습니다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1651303174356&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(rows: Int, columns: Int, queries: Array&amp;lt;IntArray&amp;gt;): IntArray {
        var answer = intArrayOf()
        answer = IntArray(queries.size)
        var arr: Array&amp;lt;IntArray&amp;gt; = Array(rows) { IntArray(columns) }

        var num = 1
        for (i in 0 until rows) {
            for (j in 0 until columns) {
                arr[i][j] = num
                num++
            }

        }



        for (i in queries.indices) {
            var x1 = queries[i][0]
            var y1 = queries[i][1]
            var x2 = queries[i][2]
            var y2 = queries[i][3]

            var x = x1 - 1
            var y = y1
            var temp = arr[x1 - 1][ y1 - 1]
            var min = temp
            while (x != x1 - 1 || y != y1 - 1) {

                min = Math.min(min, arr[x][y])
                var temp2 = arr[x][y]
                arr[x][y] = temp
                temp = temp2

                if (y &amp;lt; y2 - 1 &amp;amp;&amp;amp; x == x1 - 1) {
                    y++
                } else if (y == y2 - 1 &amp;amp;&amp;amp; x != x2 - 1) {
                    x++
                } else if (x == x2 - 1 &amp;amp;&amp;amp; y &amp;gt; y1 - 1) {
                    y--
                } else if (y == y1 - 1 &amp;amp;&amp;amp; x &amp;gt; x1 - 1) {
                    x--
                }

            }
            arr[x1-1][y1-1] = temp

            min = Math.min(min,  arr[x1-1][y1-1])
            answer[i] = min

        }
        for(w in 0 until rows){
            for(j in 0 until columns){
                print(arr[w][j])
            }
            println()
        }

        return answer
    }

}
fun main() {
    var sol = Solution()

    var answer =
        sol.solution(6, 6, arrayOf(intArrayOf(2, 2, 5, 4,), intArrayOf(3, 3, 6, 6,), intArrayOf(5, 1, 6, 3)))

//    for(i in answer.indices){
//        println(answer[i])
//    }
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>코딩테스트</category>
      <category>코딩테스트</category>
      <category>코테</category>
      <category>코틀린</category>
      <category>프로그래머스</category>
      <author>제이쓰은</author>
      <guid isPermaLink="true">https://jason-api.tistory.com/176</guid>
      <comments>https://jason-api.tistory.com/176#entry176comment</comments>
      <pubDate>Sat, 30 Apr 2022 16:19:48 +0900</pubDate>
    </item>
    <item>
      <title>프로그래머스 코틀린 배달 Summer/Winter Coding(~2018)</title>
      <link>https://jason-api.tistory.com/175</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;프로그래머스.png&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;225&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blcSTQ/btrABKhsnzw/nhQkUZ1cSmrDHA5TkkPMrK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blcSTQ/btrABKhsnzw/nhQkUZ1cSmrDHA5TkkPMrK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blcSTQ/btrABKhsnzw/nhQkUZ1cSmrDHA5TkkPMrK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblcSTQ%2FbtrABKhsnzw%2FnhQkUZ1cSmrDHA5TkkPMrK%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;225&quot; height=&quot;225&quot; data-filename=&quot;프로그래머스.png&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;225&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/12978&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://programmers.co.kr/learn/courses/30/lessons/12978&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1651045991555&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;코딩테스트 연습 - 배달&quot; data-og-description=&quot;5 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]] 3 4 6 [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]] 4 4&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/12978&quot; data-og-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/12978&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bWCaj1/hyOcCaOhrF/WKwr1r5PyIMCsiuIanKWIk/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/b82JOz/hyOcwPcrxX/MyhKII7noIWnX06p4yMVKk/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/LWD37/hyOcysHa37/YQFhyaDjsoBGKnFyGgHv70/img.png?width=250&amp;amp;height=212&amp;amp;face=0_0_250_212&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/12978&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/12978&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bWCaj1/hyOcCaOhrF/WKwr1r5PyIMCsiuIanKWIk/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/b82JOz/hyOcwPcrxX/MyhKII7noIWnX06p4yMVKk/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/LWD37/hyOcysHa37/YQFhyaDjsoBGKnFyGgHv70/img.png?width=250&amp;amp;height=212&amp;amp;face=0_0_250_212');&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;코딩테스트 연습 - 배달&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;5 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]] 3 4 6 [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]] 4 4&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&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;
&lt;p data-ke-size=&quot;size16&quot;&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;Level 2 배달 문제를 풀어봤습니다!&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;다익스트라 알고리즘을 알고 있다면 비교적 쉽게 풀 수 있었던 문제였습니다!!&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;문제 설명&lt;/p&gt;
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;N개의 마을로 이루어진 나라가 있습니다. 이 나라의 각 마을에는 1부터 N까지의 번호가 각각 하나씩 부여되어 있습니다. 각 마을은 양방향으로 통행할 수 있는 도로로 연결되어 있는데, 서로 다른 마을 간에 이동할 때는 이 도로를 지나야 합니다. 도로를 지날 때 걸리는 시간은 도로별로 다릅니다. 현재 1번 마을에 있는 음식점에서 각 마을로 음식 배달을 하려고 합니다. 각 마을로부터 음식 주문을 받으려고 하는데, N개의 마을 중에서 K 시간 이하로 배달이 가능한 마을에서만 주문을 받으려고 합니다. 다음은 N = 5, K = 3인 경우의 예시입니다.&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;250&quot; data-origin-height=&quot;212&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dxqTMB/btrABZsqgkS/fmjkJT89J452gvxkX9aTM1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dxqTMB/btrABZsqgkS/fmjkJT89J452gvxkX9aTM1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dxqTMB/btrABZsqgkS/fmjkJT89J452gvxkX9aTM1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdxqTMB%2FbtrABZsqgkS%2FfmjkJT89J452gvxkX9aTM1%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;250&quot; height=&quot;212&quot; data-origin-width=&quot;250&quot; data-origin-height=&quot;212&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;위 그림에서 1번 마을에 있는 음식점은 [1, 2, 4, 5] 번 마을까지는 3 이하의 시간에 배달할 수 있습니다. 그러나 3번 마을까지는 3시간 이내로 배달할 수 있는 경로가 없으므로 3번 마을에서는 주문을 받지 않습니다. 따라서 1번 마을에 있는 음식점이 배달 주문을 받을 수 있는 마을은 4개가 됩니다.&lt;br /&gt;마을의 개수 N, 각 마을을 연결하는 도로의 정보 road, 음식 배달이 가능한 시간 K가 매개변수로 주어질 때, 음식 주문을 받을 수 있는 마을의 개수를 return 하도록 solution 함수를 완성해주세요.&lt;/p&gt;
제한사항
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;마을의 개수 N은 1 이상 50 이하의 자연수입니다.&lt;/li&gt;
&lt;li&gt;road의 길이(도로 정보의 개수)는 1 이상 2,000 이하입니다.&lt;/li&gt;
&lt;li&gt;road의 각 원소는 마을을 연결하고 있는 각 도로의 정보를 나타냅니다.&lt;/li&gt;
&lt;li&gt;road는 길이가 3인 배열이며, 순서대로 (a, b, c)를 나타냅니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;a, b(1 &amp;le; a, b &amp;le; N, a != b)는 도로가 연결하는 두 마을의 번호이며, c(1 &amp;le; c &amp;le; 10,000, c는 자연수)는 도로를 지나는데 걸리는 시간입니다.&lt;/li&gt;
&lt;li&gt;두 마을 a, b를 연결하는 도로는 여러 개가 있을 수 있습니다.&lt;/li&gt;
&lt;li&gt;한 도로의 정보가 여러 번 중복해서 주어지지 않습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;K는 음식 배달이 가능한 시간을 나타내며, 1 이상 500,000 이하입니다.&lt;/li&gt;
&lt;li&gt;임의의 두 마을간에 항상 이동 가능한 경로가 존재합니다.&lt;/li&gt;
&lt;li&gt;1번 마을에 있는 음식점이 K 이하의 시간에 배달이 가능한 마을의 개수를 return 하면 됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;입출력 예NroadKresult
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;[[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]]&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;[[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]]&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
입출력 예 설명
&lt;p data-ke-size=&quot;size16&quot;&gt;입출력 예 #1&lt;br /&gt;문제의 예시와 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입출력 예 #2&lt;br /&gt;주어진 마을과 도로의 모양은 아래 그림과 같습니다.&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;250&quot; data-origin-height=&quot;159&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AEk2q/btrACLtThb1/qlGOj9UjUyK35Wyj40B2yK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AEk2q/btrACLtThb1/qlGOj9UjUyK35Wyj40B2yK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AEk2q/btrACLtThb1/qlGOj9UjUyK35Wyj40B2yK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAEk2q%2FbtrACLtThb1%2FqlGOj9UjUyK35Wyj40B2yK%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;250&quot; height=&quot;159&quot; data-origin-width=&quot;250&quot; data-origin-height=&quot;159&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;1번 마을에서 배달에 4시간 이하가 걸리는 마을은 [1, 2, 3, 5] 4개이므로 4를 return 합니다.&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1번 마을에서 출발해서 각각 마을 거리의 최소 거리를 저장하고 나서&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;K보다 작거나 같은 거리의 마을을 찾으면 되는 간단한 문제입니다&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;1번 마을 부터 BFS 를 통해서 찾아 들어가면서&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;1번 부터 해당 마을간의 거리의 최소값을 저장하면 됩니다!&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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1651047189842&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.*
import kotlin.collections.HashMap

class Solution {

    var visited :IntArray = intArrayOf()
    var arr  : Array&amp;lt;HashMap&amp;lt;Int,Int&amp;gt;&amp;gt; = arrayOf()
    fun solution(N: Int, road: Array&amp;lt;IntArray&amp;gt;, k: Int): Int {
        var answer = 1


        visited = IntArray(N+1){-1}
        arr = Array(N+1){ HashMap() }

        for(i in road.indices){
            var startIndex = road[i][0]
            var endIndex = road[i][1]
            var distance = road[i][2]

            if(arr[startIndex].containsKey(endIndex)){

                if(arr[startIndex][endIndex]!! &amp;gt;distance){
                    arr[startIndex][endIndex] = distance
                    arr[endIndex][startIndex] = distance
                }
            }else{
                arr[startIndex][endIndex] = distance
                arr[endIndex][startIndex] = distance
            }


        }
        search(1)
        for(i in 2 ..N){
            if(visited[i]&amp;lt;=k &amp;amp;&amp;amp; visited[i]!=-1){
                answer++
            }
        }
        return answer
    }

    fun search(index : Int ){
    visited[1]=0
    var queue = LinkedList&amp;lt;Int&amp;gt;()
        queue.add(index)
        while (!queue.isEmpty()){

            var now = queue.poll()

            for(key in arr[now].keys){
                var dist = arr[now][key]

                if(visited[key]==-1){
                    queue.add(key)
                    visited[key] = dist!!+visited[now]
                }else if(visited[key] &amp;gt;visited[now]+dist!!){
                    visited[key] = visited[now]+dist
                    queue.add(key)
                }
            }
        }
    }
}

fun main(){
    var solution = Solution()

    var answer = solution.solution(5,
    arrayOf(intArrayOf(1,2,1), intArrayOf(2,3,3), intArrayOf(5,2,2), intArrayOf(1,4,2),
    intArrayOf(5,3,1), intArrayOf(5,4,2)),3)
    println(answer)
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;</description>
      <category>코딩테스트</category>
      <category>다익스트라</category>
      <category>코딩테스트</category>
      <category>코테</category>
      <category>코틀린</category>
      <category>프로그래머스</category>
      <author>제이쓰은</author>
      <guid isPermaLink="true">https://jason-api.tistory.com/175</guid>
      <comments>https://jason-api.tistory.com/175#entry175comment</comments>
      <pubDate>Wed, 27 Apr 2022 17:13:28 +0900</pubDate>
    </item>
    <item>
      <title>안드로이드 데이터 바인딩 Data Binding</title>
      <link>https://jason-api.tistory.com/174</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;820&quot; data-origin-height=&quot;386&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n7eip/btrAh730lgt/FDEzhwtujpNrjrD44mzuW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n7eip/btrAh730lgt/FDEzhwtujpNrjrD44mzuW0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n7eip/btrAh730lgt/FDEzhwtujpNrjrD44mzuW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn7eip%2FbtrAh730lgt%2FFDEzhwtujpNrjrD44mzuW0%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;820&quot; height=&quot;386&quot; data-origin-width=&quot;820&quot; data-origin-height=&quot;386&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;안녕하세요!&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;데이터 바인딩이란&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;&lt;b&gt; &lt;span style=&quot;background-color: #ffffff; color: #202124;&quot;&gt;프로그래매틱 방식이 아니라 선언적 형식으로 레이아웃의 UI 구성요소를 앱의 데이터 소스와 결합할 수 있는 지원 라이브러리입니다&lt;/span&gt;&lt;/b&gt;&lt;/i&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;앱의 데이터 소스와 결합할 수 있어서 UI 요소에 연결하기 위해 필요한 코드를 최소화 할 수 있습니다 !&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;&lt;u&gt;&lt;b&gt;1.findViewId()를 호출하지 않아도 자동으로 xml 에 있는 View들을 만들어 줍니다&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&lt;b&gt;2.data가 바뀌면 자동으로 View를 변경할 수 있습니다&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&lt;b&gt;3.코드의 가독성이 좋아집니다&amp;nbsp;&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;장점이 있으면 동시에 단점도 존재합니다!&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;&lt;u&gt;&lt;b&gt;클래스 파일이 많이 생겨 빌드 속도가 느려지는 단점이 존재하는대&amp;nbsp;&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&lt;b&gt;MVVM 또는 MVP 아키택처를 함께 사용해야 빛을 발한다고 합니다!&amp;nbsp;&lt;/b&gt;&lt;/u&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;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;b&gt;기존에 findViewById() 를 통해서 레이아웃에 뷰 컴포넌트를 찾아서 거기에 변화를 주었는대&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;b&gt;이런 경우 findViewById() 구문이 호출 될때 마다 레이아웃 파일 트리를 순회하며 요소를 찾아야 해서 &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;b&gt;&amp;nbsp;레이아웃 파일이 많아 지거나 찾는 요소가 많아 질 수록 시간이 늘어나게 됩니다&lt;/b&gt;&lt;/span&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;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;b&gt;그러나 DataBinding 을 이용한다면&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;b&gt;레이아웃 파일을 중개해주는 오브젝트를 만들어 관리함으로 써 더 효율적으로 레이아웃 요소에 접근 할 수 있습니다!!&lt;/b&gt;&lt;/span&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;p data-ke-size=&quot;size16&quot;&gt;먼저 app module 의 gradle 파일을&lt;/p&gt;
&lt;pre id=&quot;code_1650965115646&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-android-extensions'
}

android {
    compileSdkVersion 31
    androidExtensions { experimental = true }

    defaultConfig {
        applicationId &quot;@@@@@@@@@@2&quot;
        minSdkVersion 26
        targetSdkVersion 31
        versionCode 1
        versionName &quot;1.0&quot;

        testInstrumentationRunner &quot;androidx.test.runner.AndroidJUnitRunner&quot;
    }
    buildFeatures{
        dataBinding = true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }



}

dependencies {
    implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.3.1'
    implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1'
    implementation &quot;org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version&quot;
    implementation 'androidx.core:core-ktx:1.7.0'
    implementation 'androidx.appcompat:appcompat:1.4.1'
    implementation 'com.google.android.material:material:1.5.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}&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;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;activity_main.xml 파일을&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1650965167309&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;layout
    xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:app=&quot;http://schemas.android.com/apk/res-auto&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;&amp;gt;
    &amp;lt;data&amp;gt;
        &amp;lt;variable
            name=&quot;model&quot;
            type=&quot;com.example.musicplayer.User&quot; /&amp;gt;
    &amp;lt;/data&amp;gt;
    &amp;lt;androidx.constraintlayout.widget.ConstraintLayout

        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;match_parent&quot;
        tools:context=&quot;.MainActivity&quot;&amp;gt;

    &amp;lt;TextView
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;@{model.name}&quot;
        android:id=&quot;@+id/txt&quot;
        app:layout_constraintBottom_toBottomOf=&quot;parent&quot;
        app:layout_constraintLeft_toLeftOf=&quot;parent&quot;
        app:layout_constraintRight_toRightOf=&quot;parent&quot;
        app:layout_constraintTop_toTopOf=&quot;parent&quot; /&amp;gt;
    &amp;lt;/androidx.constraintlayout.widget.ConstraintLayout&amp;gt;
&amp;lt;/layout&amp;gt;&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;layout 태그 안에 뷰 컴포넌트를 정의 하고&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;data 태그 안에 바인딩 할 데이터의 이름(model)과 타입(type)을 작성 해줍니다!&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TextView 컴포넌트에&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;text = &quot;@{model.name}&quot; 이 있는대&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;@{}&quot; 는 데이터 바인딩 을 통해서 직접 접근하는 연산자 입니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉 model.name은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터 바인딩 되어 있는 User 객체의 name 필드를 가지고 온다는 의미입니다!&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;그리고 Data Class 파일 User을 하나 만들어 주고&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1650965198575&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;data class User(
    var name :String,
    var age : Int
)&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;MainActivity 클래스 파일을 이와 같이 작성해서 실행 하면 간단하게 데이터 바인딩을 확인 할 수 있습니다!&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;pre id=&quot;code_1650965273105&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.databinding.DataBindingUtil
import com.example.musicplayer.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {
    private lateinit var binding : ActivityMainBinding
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        binding = DataBindingUtil.setContentView(this,
        R.layout.activity_main)

        binding.model = User(&quot;Jason&quot;,25)

    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;gradle 파일에 databinding = true 로 하고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;activity_main.xml 파일에 layout 태그를 사용 하게 되면&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;레이아웃 파일을 중개해주는 오브젝트를 생성 할 수 있습니다!&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;ActivityMainBinding이 레이아웃 파일 중개해주는 오브젝트 입니다!&lt;/span&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;지금 간단하게 Data 클래스 User 를 만들어서 User 데이터 객체와 데이터 바인딩을 시켜줬지만&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MVVM을 공부 하게 된 경우&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&lt;b&gt;Data 객체가 아닌 ViewModel&lt;/b&gt;&lt;/u&gt; 과 연결 해서 사용 할 경우 훨씬 효율적인 구조를 만들 수 있습니다!&amp;nbsp;&lt;/p&gt;</description>
      <category>안드로이드</category>
      <category>데이터바인딩</category>
      <category>안드로이드</category>
      <category>코틀린</category>
      <author>제이쓰은</author>
      <guid isPermaLink="true">https://jason-api.tistory.com/174</guid>
      <comments>https://jason-api.tistory.com/174#entry174comment</comments>
      <pubDate>Tue, 26 Apr 2022 19:24:56 +0900</pubDate>
    </item>
    <item>
      <title>코틀린 백준 1316번 문자열 집합</title>
      <link>https://jason-api.tistory.com/173</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;244&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bz42dc/btrAoFm4BS9/huhYH9PFxFFgFTBOZ3R1HK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bz42dc/btrAoFm4BS9/huhYH9PFxFFgFTBOZ3R1HK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bz42dc/btrAoFm4BS9/huhYH9PFxFFgFTBOZ3R1HK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbz42dc%2FbtrAoFm4BS9%2FhuhYH9PFxFFgFTBOZ3R1HK%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;776&quot; height=&quot;244&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;244&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;&lt;a href=&quot;https://www.acmicpc.net/problem/1316&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.acmicpc.net/problem/1316&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1650875512589&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;1316번: 그룹 단어 체커&quot; data-og-description=&quot;그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/1316&quot; data-og-url=&quot;https://www.acmicpc.net/problem/1316&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/eKwGvY/hyN9NEXSpl/2FDhaZVqJwtkrfhpKkwvlK/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1316&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/1316&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/eKwGvY/hyN9NEXSpl/2FDhaZVqJwtkrfhpKkwvlK/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&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;1316번: 그룹 단어 체커&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&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;
&lt;div&gt;
&lt;div&gt;
&lt;h1&gt;&lt;span&gt;그룹 단어 체커&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #5cb85c; color: #ffffff;&quot;&gt;성공&lt;/span&gt;&lt;/h1&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;시간 제한메모리 제한제출정답맞힌 사람정답 비율
&lt;table id=&quot;problem-info&quot; style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2 초&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;128 MB&lt;/td&gt;
&lt;td&gt;88305&lt;/td&gt;
&lt;td&gt;45590&lt;/td&gt;
&lt;td&gt;38193&lt;/td&gt;
&lt;td&gt;52.179%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;problem-body&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;문제&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_description&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단어 N개를 입력으로 받아&amp;nbsp;그룹 단어의 개수를 출력하는 프로그램을 작성하시오.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;입력&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_input&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫째 줄에 단어의 개수 N이 들어온다. N은 100보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 단어가 들어온다. 단어는 알파벳 소문자로만 되어있고 중복되지 않으며, 길이는 최대 100이다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;출력&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_output&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫째 줄에 그룹 단어의 개수를 출력한다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 입력 1&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-input-1&quot; class=&quot;haxe&quot;&gt;&lt;code&gt;3
happy
new
year
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 출력 1&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-output-1&quot; class=&quot;angelscript&quot;&gt;&lt;code&gt;3&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 입력 2&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-input-2&quot; class=&quot;angelscript&quot;&gt;&lt;code&gt;4
aba
abab
abcabc
a
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 출력 2&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-output-2&quot; class=&quot;angelscript&quot;&gt;&lt;code&gt;1
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 입력 3&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-input-3&quot; class=&quot;armasm&quot;&gt;&lt;code&gt;5
ab
aa
aca
ba
bb
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 출력 3&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-output-3&quot; class=&quot;angelscript&quot;&gt;&lt;code&gt;4&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&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;간단하게 ArrayList 하나를 만들어서&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;만약 같은 스팰링이 존재 할 경우&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞에 스펠링과 같은지 확인 해보고 만약 같은 경우 answer++ 을 하면 되는 간단한 문제입니다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1650875632041&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.*
import kotlin.collections.ArrayList

fun main()  {


    var scanner = Scanner(System.`in`)


    var count = scanner.nextInt()
    var answer= 0

    for(i in 0  until count){

        var list = ArrayList&amp;lt;String&amp;gt;()

        var str = scanner.next()
        var check = true
        for(i in str.indices){
            if(!list.contains(str.substring(i,i+1))){
                list.add(str.substring(i,i+1))
            }else {
                if(str.subSequence(i-1,i)!=str.subSequence(i,i+1)){
                    check = false
                }
            }
        }

        if(check){
            answer++
        }
    }

    println(answer)
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>코딩테스트</category>
      <category>백준</category>
      <category>코딩테스트</category>
      <category>코테</category>
      <author>제이쓰은</author>
      <guid isPermaLink="true">https://jason-api.tistory.com/173</guid>
      <comments>https://jason-api.tistory.com/173#entry173comment</comments>
      <pubDate>Mon, 25 Apr 2022 17:34:05 +0900</pubDate>
    </item>
    <item>
      <title>코틀린 백준 1543 문서 검색</title>
      <link>https://jason-api.tistory.com/172</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;244&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HVydh/btrAggUiHvb/ofKHrw01qyulToVwboWYt0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HVydh/btrAggUiHvb/ofKHrw01qyulToVwboWYt0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HVydh/btrAggUiHvb/ofKHrw01qyulToVwboWYt0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHVydh%2FbtrAggUiHvb%2FofKHrw01qyulToVwboWYt0%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;776&quot; height=&quot;244&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;244&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1543&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.acmicpc.net/problem/1543&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1650696531606&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;1543번: 문서 검색&quot; data-og-description=&quot;세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/1543&quot; data-og-url=&quot;https://www.acmicpc.net/problem/1543&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ApwNE/hyN8A6zfis/VtawF8ZqutnbHSkVtsGvu1/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1543&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/1543&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ApwNE/hyN8A6zfis/VtawF8ZqutnbHSkVtsGvu1/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&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;1543번: 문서 검색&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h1&gt;&lt;span&gt;문서 검색&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #5cb85c; color: #ffffff;&quot;&gt;성공&lt;/span&gt;&lt;/h1&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;시간 제한메모리 제한제출정답맞힌 사람정답 비율
&lt;table id=&quot;problem-info&quot; style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2 초&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;128 MB&lt;/td&gt;
&lt;td&gt;14302&lt;/td&gt;
&lt;td&gt;5778&lt;/td&gt;
&lt;td&gt;4616&lt;/td&gt;
&lt;td&gt;40.111%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;problem-body&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;문제&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_description&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한다. 예를 들어, 문서가 abababa이고, 그리고 찾으려는 단어가 ababa라면, 세준이의 이 함수는 이 단어를 0번부터 찾을 수 있고, 2번부터도 찾을 수 있다. 그러나 동시에 셀 수는 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세준이는 문서와 검색하려는 단어가 주어졌을 때, 그 단어가 최대 몇 번 중복되지 않게 등장하는지 구하는 프로그램을 작성하시오.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;입력&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_input&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫째 줄에 문서가 주어진다. 문서의 길이는 최대 2500이다. 둘째 줄에 검색하고 싶은 단어가 주어진다. 이 길이는 최대 50이다. 문서와 단어는 알파벳 소문자와 공백으로 이루어져 있다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;출력&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_output&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫째 줄에 중복되지 않게&amp;nbsp;최대 몇 번 등장하는지 출력한다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 입력 1&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-input-1&quot; class=&quot;ebnf&quot;&gt;&lt;code&gt;ababababa
aba
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 출력 1&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-output-1&quot; class=&quot;angelscript&quot;&gt;&lt;code&gt;2
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 입력 2&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-input-2&quot; class=&quot;livecodeserver&quot;&gt;&lt;code&gt;a a a a a
a a
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 출력 2&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-output-2&quot; class=&quot;angelscript&quot;&gt;&lt;code&gt;2&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;이 문제는 간단하게&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;pre id=&quot;code_1650697521260&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.*
fun main()  {


    var scanner = Scanner(System.`in`)

    var firstStr = scanner.nextLine()
    var secondStr = scanner.nextLine()
    var index= 0
    var answer =0
    while (index+secondStr.length&amp;lt;=firstStr.length){
        if(firstStr.substring(index,index+secondStr.length).equals(secondStr)){
            answer++
            index +=secondStr.length
        }else{
            index++
        }


    }

    println(answer)
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>코딩테스트</category>
      <category>백준</category>
      <category>코딩테스트</category>
      <category>코테</category>
      <category>코틀린</category>
      <author>제이쓰은</author>
      <guid isPermaLink="true">https://jason-api.tistory.com/172</guid>
      <comments>https://jason-api.tistory.com/172#entry172comment</comments>
      <pubDate>Sat, 23 Apr 2022 16:05:36 +0900</pubDate>
    </item>
    <item>
      <title>코틀린 백준 11047 동전0</title>
      <link>https://jason-api.tistory.com/171</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;244&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sRO5q/btrAdbTnj7U/wZAevrXvyTUkJtiAHwrYl1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sRO5q/btrAdbTnj7U/wZAevrXvyTUkJtiAHwrYl1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sRO5q/btrAdbTnj7U/wZAevrXvyTUkJtiAHwrYl1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsRO5q%2FbtrAdbTnj7U%2FwZAevrXvyTUkJtiAHwrYl1%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;776&quot; height=&quot;244&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;244&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;&lt;a href=&quot;https://www.acmicpc.net/problem/11047&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.acmicpc.net/problem/11047&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1650638677171&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;11047번: 동전 0&quot; data-og-description=&quot;첫째 줄에 N과 K가 주어진다. (1 &amp;le; N &amp;le; 10, 1 &amp;le; K &amp;le; 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 &amp;le; Ai &amp;le; 1,000,000, A1 = 1, i&amp;nbsp;&amp;ge; 2인 경우에&amp;nbsp;Ai는 Ai-1의 배수)&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/11047&quot; data-og-url=&quot;https://www.acmicpc.net/problem/11047&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/exCtS/hyN8BRpuEf/SB8FMFZ5Q6dXcgjs0vJLp1/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/11047&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/11047&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/exCtS/hyN8BRpuEf/SB8FMFZ5Q6dXcgjs0vJLp1/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&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;11047번: 동전 0&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 N과 K가 주어진다. (1 &amp;le; N &amp;le; 10, 1 &amp;le; K &amp;le; 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 &amp;le; Ai &amp;le; 1,000,000, A1 = 1, i&amp;nbsp;&amp;ge; 2인 경우에&amp;nbsp;Ai는 Ai-1의 배수)&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&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;
&lt;div&gt;
&lt;div&gt;
&lt;h1&gt;&lt;span&gt;동전 0&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #5cb85c; color: #ffffff;&quot;&gt;성공&lt;/span&gt;&lt;/h1&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;시간 제한메모리 제한제출정답맞힌 사람정답 비율
&lt;table id=&quot;problem-info&quot; style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1 초&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;256 MB&lt;/td&gt;
&lt;td&gt;80624&lt;/td&gt;
&lt;td&gt;41986&lt;/td&gt;
&lt;td&gt;32669&lt;/td&gt;
&lt;td&gt;51.814%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;problem-body&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;문제&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_description&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;입력&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_input&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫째 줄에 N과 K가 주어진다. (1 &amp;le; N &amp;le; 10, 1 &amp;le; K &amp;le; 100,000,000)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 &amp;le; Ai&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;le; 1,000,000, A1&lt;span&gt;&amp;nbsp;&lt;/span&gt;= 1, i&amp;nbsp;&amp;ge; 2인 경우에&amp;nbsp;Ai는 Ai-1의 배수)&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;출력&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_output&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫째 줄에 K원을 만드는데 필요한 동전 개수의 최솟값을 출력한다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 입력 1&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-input-1&quot; class=&quot;angelscript&quot;&gt;&lt;code&gt;10 4200
1
5
10
50
100
500
1000
5000
10000
50000
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 출력 1&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-output-1&quot; class=&quot;angelscript&quot;&gt;&lt;code&gt;6
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 입력 2&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-input-2&quot; class=&quot;angelscript&quot;&gt;&lt;code&gt;10 4790
1
5
10
50
100
500
1000
5000
10000
50000
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 출력 2&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-output-2&quot; class=&quot;angelscript&quot;&gt;&lt;code&gt;12
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;나누면서 몫이 0이 아니면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 수 * 몫 한 값을 빼주면서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;K가 0이 될때 까지 반복하면 되는 문제입니다!&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1650639463735&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.*
import kotlin.collections.ArrayList

fun main()  {


    var scanner = Scanner(System.`in`)


    var n =scanner.nextInt()
    var k = scanner.nextInt()
    var answer =0
    var arr = ArrayList&amp;lt;Int&amp;gt;()
    for(i in 0 until n){
       arr.add(scanner.nextInt())
    }

    arr.sortDescending()
    var index = 0
    while (k!=0){
        if(k/arr[index]!=0){
            var num = k/arr[index]

            k -=num*arr[index]
            answer+=num
        }
        index++
    }
    println(answer)

}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>코딩테스트</category>
      <category>백준</category>
      <category>코딩테스트</category>
      <category>코테</category>
      <category>코틀린</category>
      <author>제이쓰은</author>
      <guid isPermaLink="true">https://jason-api.tistory.com/171</guid>
      <comments>https://jason-api.tistory.com/171#entry171comment</comments>
      <pubDate>Fri, 22 Apr 2022 23:57:56 +0900</pubDate>
    </item>
    <item>
      <title>코틀린 백준 19941 햄버거 분배</title>
      <link>https://jason-api.tistory.com/170</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;244&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MzxD6/btrAbLhdTOh/sapdfkSZT28bKgl41FNItK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MzxD6/btrAbLhdTOh/sapdfkSZT28bKgl41FNItK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MzxD6/btrAbLhdTOh/sapdfkSZT28bKgl41FNItK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMzxD6%2FbtrAbLhdTOh%2FsapdfkSZT28bKgl41FNItK%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;776&quot; height=&quot;244&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;244&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;&lt;a href=&quot;https://www.acmicpc.net/problem/19941&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.acmicpc.net/problem/19941&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1650636472178&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;19941번: 햄버거 분배&quot; data-og-description=&quot;기다란 벤치 모양의 식탁에 사람들과 햄버거가 아래와 같이 단위 간격으로 놓여 있다. 사람들은 자신의 위치에서 거리가 $K$ 이하인 햄버거를 먹을 수 있다. 햄버거 사람 햄버거 사람 햄버거 사&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/19941&quot; data-og-url=&quot;https://www.acmicpc.net/problem/19941&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b7wW3d/hyN8sGSE4f/v0HHKKurKgFjQxEh2nUWhK/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/19941&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/19941&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b7wW3d/hyN8sGSE4f/v0HHKKurKgFjQxEh2nUWhK/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&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;19941번: 햄버거 분배&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;기다란 벤치 모양의 식탁에 사람들과 햄버거가 아래와 같이 단위 간격으로 놓여 있다. 사람들은 자신의 위치에서 거리가 $K$ 이하인 햄버거를 먹을 수 있다. 햄버거 사람 햄버거 사람 햄버거 사&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&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;
&lt;div&gt;
&lt;div&gt;
&lt;h1&gt;&lt;span&gt;햄버거 분배&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #5cb85c; color: #ffffff;&quot;&gt;성공&lt;/span&gt;&lt;/h1&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;시간 제한메모리 제한제출정답맞힌 사람정답 비율
&lt;table id=&quot;problem-info&quot; style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;0.5 초 (추가 시간 없음)&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;256 MB&lt;/td&gt;
&lt;td&gt;4420&lt;/td&gt;
&lt;td&gt;2088&lt;/td&gt;
&lt;td&gt;1653&lt;/td&gt;
&lt;td&gt;49.804%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;problem-body&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;문제&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_description&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기다란 벤치 모양의 식탁에 사람들과 햄버거가 아래와 같이 단위 간격으로 놓여 있다. 사람들은 자신의 위치에서 거리가&lt;span&gt;&amp;nbsp;&lt;/span&gt;K&lt;span aria-hidden=&quot;true&quot;&gt;$K$&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;이하인 햄버거를 먹을 수 있다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;햄버거&lt;/td&gt;
&lt;td&gt;사람&lt;/td&gt;
&lt;td&gt;햄버거&lt;/td&gt;
&lt;td&gt;사람&lt;/td&gt;
&lt;td&gt;햄버거&lt;/td&gt;
&lt;td&gt;사람&lt;/td&gt;
&lt;td&gt;햄버거&lt;/td&gt;
&lt;td&gt;햄버거&lt;/td&gt;
&lt;td&gt;사람&lt;/td&gt;
&lt;td&gt;사람&lt;/td&gt;
&lt;td&gt;햄버거&lt;/td&gt;
&lt;td&gt;사람&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;1&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;2&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;3&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;4&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;5&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;6&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;7&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;8&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;9&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;10&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;11&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;12&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 상태에서&lt;span&gt;&amp;nbsp;&lt;/span&gt;K=1&lt;span aria-hidden=&quot;true&quot;&gt;$K = 1$&lt;/span&gt;인 경우를 생각해보자. 이 경우 모든 사람은 자신과&amp;nbsp;인접한 햄버거만 먹을 수 있다. 10번의 위치에 있는 사람은 11번 위치에 있는 햄버거를 먹을 수 있다. 이 경우 다음과 같이 최대 5명의 사람이 햄버거를 먹을 수 있다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;2번 위치에 있는 사람: 1번 위치에 있는 햄버거&lt;/li&gt;
&lt;li&gt;4번 위치에 있는 사람: 5번 위치에 있는 햄버거&lt;/li&gt;
&lt;li&gt;6번 위치에 있는 사람: 7번 위치에 있는 햄버거&lt;/li&gt;
&lt;li&gt;9번 위치에 있는 사람: 8번 위치에 있는 햄버거&lt;/li&gt;
&lt;li&gt;10번 위치에 있는 사람: 11번 위치에 있는 햄버거&lt;/li&gt;
&lt;li&gt;12번 위치에 있는 사람: 먹을 수 있는 햄버거가 없음&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt; K=2&lt;span aria-hidden=&quot;true&quot;&gt;$K = 2$&lt;/span&gt;인 경우에는 6명 모두가 햄버거를 먹을 수 있다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;2번 위치에 있는 사람: 1번 위치에 있는 햄버거&lt;/li&gt;
&lt;li&gt;4번 위치에 있는 사람: 3번 위치에 있는 햄버거&lt;/li&gt;
&lt;li&gt;6번 위치에 있는 사람: 5번 위치에 있는 햄버거&lt;/li&gt;
&lt;li&gt;9번 위치에 있는 사람: 7번 위치에 있는 햄버거&lt;/li&gt;
&lt;li&gt;10번 위치에 있는 사람: 8번 위치에 있는 햄버거&lt;/li&gt;
&lt;li&gt;12번 위치에 있는 사람: 11번 위치에 있는 햄버거&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;식탁의 길이&lt;span&gt;&amp;nbsp;&lt;/span&gt;N&lt;span aria-hidden=&quot;true&quot;&gt;$N$&lt;/span&gt;, 햄버거를 선택할 수 있는 거리&lt;span&gt;&amp;nbsp;&lt;/span&gt;K&lt;span aria-hidden=&quot;true&quot;&gt;$K$&lt;/span&gt;, 사람과 햄버거의 위치가 주어졌을 때, 햄버거를 먹을 수 있는 사람의 최대 수를 구하는 프로그램을 작성하시오.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;입력&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_input&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫 줄에 두 정수&lt;span&gt;&amp;nbsp;&lt;/span&gt;N&lt;span aria-hidden=&quot;true&quot;&gt;$N$&lt;/span&gt;과&lt;span&gt;&amp;nbsp;&lt;/span&gt;K&lt;span aria-hidden=&quot;true&quot;&gt;$K$&lt;/span&gt;가 있다. 그리고 다음 줄에 사람과 햄버거의 위치가 문자&lt;span&gt;&amp;nbsp;&lt;/span&gt;P(사람)와&lt;span&gt;&amp;nbsp;&lt;/span&gt;H(햄버거)로 이루어지는 길이&lt;span&gt;&amp;nbsp;&lt;/span&gt;N&lt;span aria-hidden=&quot;true&quot;&gt;$N$&lt;/span&gt;인 문자열로 주어진다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;출력&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_output&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫 줄에 햄버거를 먹을 수 있는 최대 사람 수를 나타낸다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;제한&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_limit&quot;&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt; 1&amp;le;N&amp;le;20,000&lt;span aria-hidden=&quot;true&quot;&gt;$1 \le N \le 20,000$&lt;/span&gt; &lt;/li&gt;
&lt;li&gt; 1&amp;le;K&amp;le;10&lt;span aria-hidden=&quot;true&quot;&gt;$1 \le K \le 10$&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 입력 1&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-input-1&quot; class=&quot;angelscript&quot;&gt;&lt;code&gt;20 1
HHPHPPHHPPHPPPHPHPHP
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 출력 1&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-output-1&quot; class=&quot;angelscript&quot;&gt;&lt;code&gt;8
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 입력 2&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-input-2&quot; class=&quot;angelscript&quot;&gt;&lt;code&gt;20 2
HHHHHPPPPPHPHPHPHHHP
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 출력 2&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-output-2&quot; class=&quot;angelscript&quot;&gt;&lt;code&gt;7&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 문제는 각 문자 하나 마다 K기준으로&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-K~+K 만큼 중에서 P와 H가 짝이 맞는게 있는 지 찾아보면 되는 간단한 문제 였습니다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1650636633362&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.*

fun main()  {


    var scanner = Scanner(System.`in`)

    var n = scanner.nextInt()
    var k = scanner.nextInt()
    var str = scanner.next().toCharArray()

    var answer = 0

    for(i in str.indices){
        var start=0
        var end = 0
        if(i-k &amp;lt;0){
            start= i+1
        }else{
            start = i-k
        }

        if(i+k&amp;gt;=str.size){
            end = str.size-1
        }else{
            end = i+k
        }

        for(j in start until end+1){
            if((str[i]=='H' &amp;amp;&amp;amp; str[j]=='P') ||
                (str[i]=='P' &amp;amp;&amp;amp;str[j]=='H')){
                answer++
                str[i]='/'
                str[j]='/'
                break
            }
        }
    }

    println(answer)
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>코딩테스트</category>
      <category>백준</category>
      <category>코딩테스트</category>
      <category>코테</category>
      <category>코틀린</category>
      <author>제이쓰은</author>
      <guid isPermaLink="true">https://jason-api.tistory.com/170</guid>
      <comments>https://jason-api.tistory.com/170#entry170comment</comments>
      <pubDate>Fri, 22 Apr 2022 23:10:45 +0900</pubDate>
    </item>
    <item>
      <title>코틀린 백준 2217번 로프</title>
      <link>https://jason-api.tistory.com/169</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;244&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cOINMN/btrAba9arlh/uZDH54X1fXjCfJfAvudjf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cOINMN/btrAba9arlh/uZDH54X1fXjCfJfAvudjf0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cOINMN/btrAba9arlh/uZDH54X1fXjCfJfAvudjf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcOINMN%2FbtrAba9arlh%2FuZDH54X1fXjCfJfAvudjf0%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;776&quot; height=&quot;244&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;244&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/2217&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.acmicpc.net/problem/2217&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1650623130961&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;2217번: 로프&quot; data-og-description=&quot;N(1 &amp;le; N &amp;le; 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/2217&quot; data-og-url=&quot;https://www.acmicpc.net/problem/2217&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/K5mzt/hyN8qaUc3l/VGFPQXdtbkjBvwEIXpJQu1/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/2217&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/2217&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/K5mzt/hyN8qaUc3l/VGFPQXdtbkjBvwEIXpJQu1/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&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;2217번: 로프&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;N(1 &amp;le; N &amp;le; 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h1&gt;&lt;span&gt;로프&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #5cb85c; color: #ffffff;&quot;&gt;성공&lt;/span&gt;&lt;/h1&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;시간 제한메모리 제한제출정답맞힌 사람정답 비율
&lt;table id=&quot;problem-info&quot; style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2 초&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;192 MB&lt;/td&gt;
&lt;td&gt;38895&lt;/td&gt;
&lt;td&gt;16727&lt;/td&gt;
&lt;td&gt;13486&lt;/td&gt;
&lt;td&gt;42.374%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;problem-body&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;문제&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_description&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;N(1 &amp;le; N &amp;le; 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 여러 개의 로프를 병렬로 연결하면 각각의 로프에 걸리는 중량을 나눌 수 있다. k개의 로프를 사용하여 중량이 w인 물체를 들어올릴 때, 각각의 로프에는 모두 고르게 w/k 만큼의 중량이 걸리게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 로프들에 대한 정보가 주어졌을 때, 이 로프들을 이용하여 들어올릴 수 있는 물체의 최대 중량을 구해내는 프로그램을 작성하시오. 모든 로프를 사용해야 할 필요는 없으며, 임의로 몇 개의 로프를 골라서 사용해도 된다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;입력&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_input&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫째 줄에 정수 N이 주어진다. 다음 N개의 줄에는 각 로프가 버틸 수 있는 최대 중량이 주어진다. 이 값은 10,000을 넘지 않는 자연수이다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;출력&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_output&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫째 줄에 답을 출력한다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 입력 1&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-input-1&quot; class=&quot;angelscript&quot;&gt;&lt;code&gt;2
10
15
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 출력 1&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-output-1&quot; class=&quot;angelscript&quot;&gt;&lt;code&gt;20&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 문제는&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리디 알고리즘을 이용하는 문제입니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;이때 중요한 점은 각 로프는 w/k 만큼의 중량이 걸린다는 점입니다&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;3개의 로프 a,b,c 가 크기 순 으로 나열되어있다고 가정했을때&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3개의 로프를 이용했을 경우 중량은 가장 작은 c*3이 됩니다&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런식으로 접근해서 문제를 푼다면 쉽게 풀 수 있었던 문제였습니다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1650623348761&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;val bre = System.`in`.bufferedReader()

fun main() = with(System.out.bufferedWriter()) {

    var count = bre.readLine().toInt()


    var list = ArrayList&amp;lt;Int&amp;gt;()
    var sum = 0
    var max = 0
    for(i in 0 until count){
        var num = bre.readLine().toInt()
        sum += num
        list.add(num)
    }

    list.sortDescending()
    max  = list[0]
    sum = list[0]
    for(i in 1 until list.size){

        var temp   = sum+list[i]

        if(temp.toDouble()/(i+1) &amp;gt;list[i].toDouble()){
            temp = list[i]*(i+1)
        }

        if(temp&amp;gt;max){
            max = temp
            sum = temp
        }

    }
    println(max)
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>코딩테스트</category>
      <category>백준</category>
      <category>안드로이드</category>
      <category>코딩테스트</category>
      <category>코틀린</category>
      <author>제이쓰은</author>
      <guid isPermaLink="true">https://jason-api.tistory.com/169</guid>
      <comments>https://jason-api.tistory.com/169#entry169comment</comments>
      <pubDate>Fri, 22 Apr 2022 19:29:21 +0900</pubDate>
    </item>
    <item>
      <title>코틀린 백준 15658번 연산자 끼어넣기(2)</title>
      <link>https://jason-api.tistory.com/168</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;244&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/R0d0w/btrz6snl6va/44dHXbT436Nswo0eA5BL8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/R0d0w/btrz6snl6va/44dHXbT436Nswo0eA5BL8K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/R0d0w/btrz6snl6va/44dHXbT436Nswo0eA5BL8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FR0d0w%2Fbtrz6snl6va%2F44dHXbT436Nswo0eA5BL8K%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;776&quot; height=&quot;244&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;244&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/15658&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.acmicpc.net/problem/15658&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1650538955149&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;15658번: 연산자 끼워넣기 (2)&quot; data-og-description=&quot;첫째 줄에 수의 개수 N(2 &amp;le; N &amp;le; 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 &amp;le; Ai &amp;le; 100) 셋째 줄에는 합이 N-1보다 크거나 같고, 4N보다 작거나 같은&amp;nbsp;4개의 정수가 주어지는데, 차례대&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/15658&quot; data-og-url=&quot;https://www.acmicpc.net/problem/15658&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/QOJto/hyN8E7lIMH/QMmETmp5eOPtimcCFKYBWK/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/15658&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/15658&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/QOJto/hyN8E7lIMH/QMmETmp5eOPtimcCFKYBWK/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&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;15658번: 연산자 끼워넣기 (2)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 수의 개수 N(2 &amp;le; N &amp;le; 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 &amp;le; Ai &amp;le; 100) 셋째 줄에는 합이 N-1보다 크거나 같고, 4N보다 작거나 같은&amp;nbsp;4개의 정수가 주어지는데, 차례대&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&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;
&lt;div&gt;
&lt;div&gt;
&lt;h1&gt;&lt;span&gt;연산자 끼워넣기 (2)&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #5cb85c; color: #ffffff;&quot;&gt;성공&lt;/span&gt;&lt;/h1&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;시간 제한메모리 제한제출정답맞힌 사람정답 비율
&lt;table id=&quot;problem-info&quot; style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2 초&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;512 MB&lt;/td&gt;
&lt;td&gt;5928&lt;/td&gt;
&lt;td&gt;3074&lt;/td&gt;
&lt;td&gt;2523&lt;/td&gt;
&lt;td&gt;52.683%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;problem-body&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;문제&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_description&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;N개의 수로 이루어진 수열 A1, A2, ..., AN이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(&amp;times;), 나눗셈(&amp;divide;)으로만 이루어져 있다. 연산자의 개수는 N-1보다 많을 수도 있다. 모든 수의 사이에는 연산자를&amp;nbsp;한 개 끼워넣어야 하며, 주어진 연산자를 모두 사용하지 않고&amp;nbsp;모든 수의 사이에 연산자를 끼워넣을 수도 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우리는 수와 수 사이에 연산자를 하나씩 넣어서, 수식을 하나 만들 수 있다. 이때, 주어진 수의 순서를 바꾸면 안 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어, 6개의 수로 이루어진 수열이 1, 2, 3, 4, 5, 6이고, 주어진 연산자가 덧셈(+) 3개, 뺄셈(-) 2개, 곱셈(&amp;times;) 1개, 나눗셈(&amp;divide;) 1개인 경우에는 총 250가지의 식을 만들 수 있다. 예를 들어, 아래와 같은 식을 만들 수 있다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1+2+3-4&amp;times;5&amp;divide;6&lt;/li&gt;
&lt;li&gt;1&amp;divide;2+3+4-5&amp;times;6&lt;/li&gt;
&lt;li&gt;1+2&amp;divide;3&amp;times;4-5+6&lt;/li&gt;
&lt;li&gt;1&amp;divide;2&amp;times;3-4+5+6&lt;/li&gt;
&lt;li&gt;1+2+3+4-5-6&lt;/li&gt;
&lt;li&gt;1+2+3-4-5&amp;times;6&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;식의 계산은 연산자 우선 순위를 무시하고 앞에서부터 진행해야 한다. 또, 나눗셈은 정수 나눗셈으로 몫만 취한다. 음수를 양수로 나눌 때는 C++14의 기준을 따른다. 즉, 양수로 바꾼 뒤 몫을 취하고, 그 몫을 음수로 바꾼 것과 같다.&amp;nbsp;이에 따라서, 위의 식 4개의 결과를 계산해보면 아래와&amp;nbsp;같다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1+2+3-4&amp;times;5&amp;divide;6 = 1&lt;/li&gt;
&lt;li&gt;1&amp;divide;2+3+4-5&amp;times;6 = 12&lt;/li&gt;
&lt;li&gt;1+2&amp;divide;3&amp;times;4-5+6 = 5&lt;/li&gt;
&lt;li&gt;1&amp;divide;2&amp;times;3-4+5+6 = 7&lt;/li&gt;
&lt;li&gt;1+2+3+4-5-6 =&amp;nbsp;-1&lt;/li&gt;
&lt;li&gt;1+2+3-4-5&amp;times;6 =&amp;nbsp;-18&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;N개의 수와 연산자가 주어졌을 때, 만들 수 있는 식의 결과가 최대인 것과 최소인 것을 구하는 프로그램을 작성하시오.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;입력&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_input&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫째 줄에 수의 개수 N(2 &amp;le; N &amp;le; 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 &amp;le; Ai&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;le; 100) 셋째 줄에는 합이 N-1보다 크거나 같고, 4N보다 작거나 같은&amp;nbsp;4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수,&amp;nbsp;곱셈(&amp;times;)의 개수, 나눗셈(&amp;divide;)의 개수이다.&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;출력&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_output&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫째 줄에 만들 수 있는 식의 결과의 최댓값을, 둘째 줄에는 최솟값을 출력한다. 연산자를 어떻게 끼워넣어도&amp;nbsp;항상 -10억보다 크거나 같고, 10억보다 작거나 같은 결과가 나오는 입력만 주어진다. 또한, 앞에서부터 계산했을 때, 중간에 계산되는 식의 결과도 항상 -10억보다 크거나 같고, 10억보다 작거나 같다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 입력 1&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-input-1&quot; class=&quot;basic&quot;&gt;&lt;code&gt;2
5 6
1 1 1 1
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 출력 1&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-output-1&quot; class=&quot;angelscript&quot;&gt;&lt;code&gt;30
-1&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;완전탐색으로 간단하게 풀 수 있는 문제였습니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;재귀함수로 구현해서 max 값과 min 값을 찾아 낼 수 있습니다!&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1650539108508&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;val bre = System.`in`.bufferedReader()
var max = Long.MIN_VALUE
var min = Long.MAX_VALUE
var operator : List&amp;lt;Int&amp;gt; = listOf()
var numCount =0
var numberArray : List&amp;lt;Int&amp;gt; = listOf()
fun main() = with(System.out.bufferedWriter()){


     numCount = bre.readLine().toInt()

     numberArray = bre.readLine().split(&quot; &quot;).map { it.toInt() }

     operator = bre.readLine().split(&quot; &quot;).map { it.toInt() }


    search(1 , operator[0],operator[1],operator[2],operator[3] , numberArray[0].toLong())

    println(max)
    println(min)

}

fun search(index : Int , plus : Int , minus : Int, mul : Int , divide : Int, sum : Long){
    if(index ==numCount){

        max = Math.max(max, sum)
        min = Math.min(min , sum)

    }else{

        if(plus!=0){
            var tempSum = sum
            tempSum +=numberArray[index]
            search(index+1, plus-1 , minus , mul , divide , tempSum)

        }
        if(minus!=0){
            var tempSum = sum
            tempSum -=numberArray[index]
            search(index+1, plus , minus-1, mul , divide , tempSum)
        }
        if(mul!=0){
            var tempSum = sum
            tempSum *=numberArray[index]
            search(index+1, plus , minus , mul-1 , divide , tempSum)
        }
        if(divide!=0){
            var tempSum = sum
            tempSum /=numberArray[index]
            search(index+1, plus , minus , mul , divide-1, tempSum)
        }
    }
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>코딩테스트</category>
      <category>백준</category>
      <category>안드로이드</category>
      <category>코딩테스트</category>
      <category>코테</category>
      <author>제이쓰은</author>
      <guid isPermaLink="true">https://jason-api.tistory.com/168</guid>
      <comments>https://jason-api.tistory.com/168#entry168comment</comments>
      <pubDate>Thu, 21 Apr 2022 20:05:20 +0900</pubDate>
    </item>
    <item>
      <title>코틀린 백준 13417번 카드 문자열</title>
      <link>https://jason-api.tistory.com/167</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;244&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUafTR/btrz3PwNfRN/Vu5hNZQU9IbAKbqGK7qub0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUafTR/btrz3PwNfRN/Vu5hNZQU9IbAKbqGK7qub0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUafTR/btrz3PwNfRN/Vu5hNZQU9IbAKbqGK7qub0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUafTR%2Fbtrz3PwNfRN%2FVu5hNZQU9IbAKbqGK7qub0%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;776&quot; height=&quot;244&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;244&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/13417&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.acmicpc.net/problem/13417&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1650528345092&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;13417번: 카드 문자열&quot; data-og-description=&quot;입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫째 줄에 테스트 케이스의 개수를 나타내는 자연수 T가 주어진다. 각각의 테스트 케이스의 첫째 줄에 처&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/13417&quot; data-og-url=&quot;https://www.acmicpc.net/problem/13417&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bH2LaA/hyN60YzmbQ/wKAHNW8G69oX1G3foffc1K/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/13417&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/13417&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bH2LaA/hyN60YzmbQ/wKAHNW8G69oX1G3foffc1K/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&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;13417번: 카드 문자열&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫째 줄에 테스트 케이스의 개수를 나타내는 자연수 T가 주어진다. 각각의 테스트 케이스의 첫째 줄에 처&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&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;
&lt;div&gt;
&lt;div&gt;
&lt;h1&gt;&lt;span&gt;카드 문자열&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #5cb85c; color: #ffffff;&quot;&gt;성공&lt;/span&gt;&lt;/h1&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;시간 제한메모리 제한제출정답맞힌 사람정답 비율
&lt;table id=&quot;problem-info&quot; style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1 초&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;256 MB&lt;/td&gt;
&lt;td&gt;1965&lt;/td&gt;
&lt;td&gt;1169&lt;/td&gt;
&lt;td&gt;1007&lt;/td&gt;
&lt;td&gt;62.084%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;problem-body&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;문제&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_description&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;N장의 카드가 일렬로 놓여있다. 각 카드에는 알파벳이 하나씩 적혀있다. 태욱이는 가장 왼쪽에 있는 카드부터 차례대로 한 장씩 가져올 수 있다. 가장 처음에 가져온 카드는 자신의 앞에 놓는다. 그다음부터는 가져온 카드를 자신의 앞에 놓인 카드들의 가장 왼쪽, 또는 가장 오른쪽에 놓는다. 태욱이는 모든 카드를 다 가져온 후에 자신의 앞에 놓인 카드를 순서대로 이어 붙여 카드 문자열을 만들려고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 3장의 카드가 [M, K, U] 순으로 놓여있다고 하자. 태욱이는 먼저 가장 왼쪽에 있는 &amp;ldquo;M&amp;rdquo;이 적힌 카드를 가져와서 자신의 앞에 놓는다. 다음으로 남은 카드 중 가장 왼쪽에 있는 &amp;ldquo;K&amp;rdquo;가 적힌 카드를 가져와서 가장 왼쪽에 두고, 이어서 &amp;ldquo;U&amp;rdquo;가 적힌 카드를 가져와서 다시 가장 왼쪽에 두면 &amp;ldquo;UKM&amp;rdquo;이라는 문자열을 만들 수 있다. 만약 &amp;ldquo;K&amp;rdquo;가 적힌 카드를 가져와서 가장 왼쪽에 두고, 이어서 &amp;ldquo;U&amp;rdquo;가 적힌 카드를 가져와서 가장 오른쪽에 두면 &amp;ldquo;KMU&amp;rdquo;라는 문자열을 만들 수 있다. 이때, 태욱이가 만들 수 있는 문자열 중 사전 순으로 가장 빠른 문자열은 &amp;ldquo;KMU&amp;rdquo;이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;N장의 카드에 적혀있는 알파벳의 처음 순서가 주어질 때, 태욱이가 만들 수 있는 카드 문자열 중 사전 순으로 가장 빠른 문자열을 출력하는 프로그램을 작성하시오.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;입력&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_input&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫째 줄에 테스트 케이스의 개수를 나타내는 자연수 T가 주어진다. 각각의 테스트 케이스의 첫째 줄에 처음에 놓여있는 카드의 개수 N(1 &amp;le; N &amp;le; 1,000)이 주어진다. 두 번째 줄에는 N장의 카드에 적힌 알파벳의 초기 순서가 주어진다. 가장 왼쪽에 있는 카드에 적혀있는 알파벳부터 순서대로 N개가 공백으로 구분되어 주어진다. 모든 카드에는 한 개씩의 알파벳이 적혀있으며, 모두 대문자이다.&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;출력&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_output&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출력은 표준 출력을 사용한다. 입력받은 데이터에 대해, 한 줄에 1개씩 태욱이가 만들 수 있는 문자열 중에서 사전 순으로 가장 빠른 문자열을 출력한다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 입력 1&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-input-1&quot; class=&quot;angelscript&quot;&gt;&lt;code&gt;3
3
M K U
5
A S D F G
7
B A C A B A C
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 출력 1&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-output-1&quot; class=&quot;ebnf&quot;&gt;&lt;code&gt;KMU
ASDFG
AAABCBC&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&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;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;간단한 문제입니다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1650528459860&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;val bre = System.`in`.bufferedReader()
fun main() = with(System.out.bufferedWriter()){

    var n = bre.readLine().toInt()
    var answer = ArrayList&amp;lt;String&amp;gt;()
    for(i in 0 until  n){
        var count = bre.readLine().toInt()
        var str = bre.readLine().split(&quot; &quot;)
        var temp =&quot;&quot;
        for(j in 0 until count){
            if(j==0){
                temp = str[j]
            }else{
                if(temp.toCharArray()[0].toString()&amp;gt;=str[j]){
                    temp = &quot;${str[j]}${temp}&quot;
                }else{
                    temp = &quot;${temp}${str[j]}&quot;
                }
            }

        }

        answer.add(temp)
    }

    for(i in answer.indices){
        println(answer[i])
    }
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>코딩테스트</category>
      <category>백준</category>
      <category>안드로이드</category>
      <category>코딩테스트</category>
      <category>코테</category>
      <category>프로그래머스</category>
      <author>제이쓰은</author>
      <guid isPermaLink="true">https://jason-api.tistory.com/167</guid>
      <comments>https://jason-api.tistory.com/167#entry167comment</comments>
      <pubDate>Thu, 21 Apr 2022 17:07:58 +0900</pubDate>
    </item>
    <item>
      <title>코틀린 백준 1302 베스트셀러</title>
      <link>https://jason-api.tistory.com/166</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;244&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhmt2W/btrz1kxx57s/IKd0Gn6ZnZYzNPpzgtPnE0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhmt2W/btrz1kxx57s/IKd0Gn6ZnZYzNPpzgtPnE0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhmt2W/btrz1kxx57s/IKd0Gn6ZnZYzNPpzgtPnE0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbhmt2W%2Fbtrz1kxx57s%2FIKd0Gn6ZnZYzNPpzgtPnE0%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;776&quot; height=&quot;244&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;244&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1302&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.acmicpc.net/problem/1302&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1650526465256&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;1302번: 베스트셀러&quot; data-og-description=&quot;첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/1302&quot; data-og-url=&quot;https://www.acmicpc.net/problem/1302&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1302&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/1302&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&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;1302번: 베스트셀러&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&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;
&lt;p data-ke-size=&quot;size16&quot;&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;어제와 같은 실버 4&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;베스트 셀러 문제를 풀어봤습니다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h1&gt;&lt;span&gt;베스트셀러&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #5cb85c; color: #ffffff;&quot;&gt;성공&lt;/span&gt;&lt;/h1&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;시간 제한메모리 제한제출정답맞힌 사람정답 비율
&lt;table id=&quot;problem-info&quot; style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2 초&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;128 MB&lt;/td&gt;
&lt;td&gt;12485&lt;/td&gt;
&lt;td&gt;6077&lt;/td&gt;
&lt;td&gt;5013&lt;/td&gt;
&lt;td&gt;48.898%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;problem-body&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;문제&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_description&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;김형택은 탑문고의 직원이다. 김형택은 계산대에서 계산을 하는 직원이다. 김형택은 그날 근무가 끝난 후에, 오늘 판매한 책의 제목을 보면서 가장 많이 팔린 책의 제목을 칠판에 써놓는 일도 같이 하고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘 하루 동안 팔린 책의 제목이 입력으로 들어왔을 때, 가장 많이 팔린 책의 제목을 출력하는 프로그램을 작성하시오.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;입력&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_input&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고, 알파벳 소문자로만 이루어져 있다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;출력&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_output&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫째 줄에 가장 많이 팔린 책의 제목을 출력한다. 만약 가장 많이 팔린 책이 여러 개일 경우에는 사전 순으로 가장 앞서는 제목을 출력한다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 입력 1&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-input-1&quot; class=&quot;coq&quot;&gt;&lt;code&gt;5
top
top
top
top
kimtop
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 출력 1&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-output-1&quot; class=&quot;coq&quot;&gt;&lt;code&gt;top
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 입력 2&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-input-2&quot; class=&quot;gams&quot;&gt;&lt;code&gt;9
table
chair
table
table
lamp
door
lamp
table
chair
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 출력 2&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-output-2&quot; class=&quot;gams&quot;&gt;&lt;code&gt;table&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 문제는&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간단하게 HashMap 을 이용해서 풀 수 있습니다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1650526537273&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;val bre = System.`in`.bufferedReader()
fun main() = with(System.out.bufferedWriter()){
    var map = HashMap&amp;lt;String,Int&amp;gt;()

    var max = Integer.MIN_VALUE
    var answer = &quot;&quot;
    var n = bre.readLine().toInt()
    
    for(i in 0 until n){
        var bookName = bre.readLine()
        
        map.put(bookName,map.getOrDefault(bookName,0)+1)
        
        
    }

    for(key in map.keys){
        var count = map.get(key)
        
        if(max&amp;lt; count!!){
            max = count
            answer = key
        }else if(max==count){
            if(answer&amp;gt;key){
                answer = key
            }
        }
    }

    println(answer)
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>코딩테스트</category>
      <category>백준</category>
      <category>안드로이드</category>
      <category>코딩테스트</category>
      <category>코테</category>
      <category>코테[</category>
      <author>제이쓰은</author>
      <guid isPermaLink="true">https://jason-api.tistory.com/166</guid>
      <comments>https://jason-api.tistory.com/166#entry166comment</comments>
      <pubDate>Thu, 21 Apr 2022 16:35:58 +0900</pubDate>
    </item>
    <item>
      <title>코틀린 백준 1120 번 문자열</title>
      <link>https://jason-api.tistory.com/165</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;244&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/syb8p/btrzZ3OZ1Pr/O3rWep4wmEc9KJZG4clkxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/syb8p/btrzZ3OZ1Pr/O3rWep4wmEc9KJZG4clkxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/syb8p/btrzZ3OZ1Pr/O3rWep4wmEc9KJZG4clkxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fsyb8p%2FbtrzZ3OZ1Pr%2FO3rWep4wmEc9KJZG4clkxK%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;776&quot; height=&quot;244&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;244&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1120&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.acmicpc.net/problem/1120&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1650466631701&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;1120번: 문자열&quot; data-og-description=&quot;길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] &amp;ne; Y[i]인 i의 개수이다. 예를 들어, X=&amp;rdquo;jimin&amp;rdquo;, Y=&amp;rdquo;minji&amp;rdquo;이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의 &quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/1120&quot; data-og-url=&quot;https://www.acmicpc.net/problem/1120&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/baKIaa/hyN629kzrq/3EzdAVk7BXDIk3Bsy91dKK/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1120&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/1120&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/baKIaa/hyN629kzrq/3EzdAVk7BXDIk3Bsy91dKK/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&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;1120번: 문자열&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] &amp;ne; Y[i]인 i의 개수이다. 예를 들어, X=&amp;rdquo;jimin&amp;rdquo;, Y=&amp;rdquo;minji&amp;rdquo;이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안녕하세요!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 실버 4&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자열 문제를 풀어봤습니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실버 4 문제라서 난이도는 쉬운 수준의 문제였습니다!&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h1&gt;&lt;span&gt;문자열&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #5cb85c; color: #ffffff;&quot;&gt;성공&lt;/span&gt;&lt;/h1&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;시간 제한메모리 제한제출정답맞힌 사람정답 비율
&lt;table id=&quot;problem-info&quot; style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2 초&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;128 MB&lt;/td&gt;
&lt;td&gt;13992&lt;/td&gt;
&lt;td&gt;7426&lt;/td&gt;
&lt;td&gt;6467&lt;/td&gt;
&lt;td&gt;54.290%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;problem-body&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;문제&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_description&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] &amp;ne; Y[i]인 i의 개수이다. 예를 들어, X=&amp;rdquo;jimin&amp;rdquo;, Y=&amp;rdquo;minji&amp;rdquo;이면, 둘의 차이는 4이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두 문자열 A와 B가 주어진다. 이때, A의 길이는 B의 길이보다 작거나 같다. 이제 A의 길이가 B의 길이와 같아질 때 까지 다음과 같은 연산을 할 수 있다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;A의 앞에 아무 알파벳이나 추가한다.&lt;/li&gt;
&lt;li&gt;A의 뒤에 아무 알파벳이나 추가한다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때, A와 B의 길이가 같으면서, A와 B의 차이를 최소로 하는 프로그램을 작성하시오.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;입력&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_input&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫째 줄에 A와 B가 주어진다. A와 B의 길이는 최대 50이고, A의 길이는 B의 길이보다 작거나 같고, 알파벳 소문자로만 이루어져 있다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;출력&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_output&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A와 B의 길이가 같으면서, A와 B의 차이를 최소가 되도록 했을 때, 그 차이를 출력하시오.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 입력 1&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-input-1&quot; class=&quot;ebnf&quot;&gt;&lt;code&gt;adaabc aababbc
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 출력 1&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-output-1&quot; class=&quot;angelscript&quot;&gt;&lt;code&gt;2
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 입력 2&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-input-2&quot; class=&quot;ebnf&quot;&gt;&lt;code&gt;hello xello
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 출력 2&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-output-2&quot; class=&quot;angelscript&quot;&gt;&lt;code&gt;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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&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;문자 A 가 문자 B와 얼마나 다른지 확인만 하면 되는 간단한 문제입니다&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;이중 for문을 이용해서&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비교 시작 문자열이 0 부터 시작해서 문자 A 와 B의 길이 차이만큼 반복해서&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비교합니다!&lt;/p&gt;
&lt;pre id=&quot;code_1650467224360&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;val bre = System.`in`.bufferedReader()
fun main() = with(System.out.bufferedWriter()){

   var strArray = bre.readLine().split(&quot; &quot;)

    var answer = Integer.MAX_VALUE

    for(i in 0.. (strArray[1].length - strArray[0].length)){
        var count =0
        for(j in strArray[0].indices){
            if(strArray[1].toCharArray()[j+i]!=strArray[0].toCharArray()[j]){
                count++
            }

        }

        answer = Math.min(count,answer)
    }

    println(answer)
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>코딩테스트</category>
      <category>문자열</category>
      <category>백준</category>
      <category>코딩테스트</category>
      <category>코틀린</category>
      <author>제이쓰은</author>
      <guid isPermaLink="true">https://jason-api.tistory.com/165</guid>
      <comments>https://jason-api.tistory.com/165#entry165comment</comments>
      <pubDate>Thu, 21 Apr 2022 00:08:09 +0900</pubDate>
    </item>
    <item>
      <title>코틀린 순위 검색 프로그래머스 2021 KAKAO BLIND RECRUITMENT</title>
      <link>https://jason-api.tistory.com/164</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;프로그래머스.png&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;225&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/w7YD3/btrzKKcAk99/RXKEDkl56Nt02qJugfZrVk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/w7YD3/btrzKKcAk99/RXKEDkl56Nt02qJugfZrVk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/w7YD3/btrzKKcAk99/RXKEDkl56Nt02qJugfZrVk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fw7YD3%2FbtrzKKcAk99%2FRXKEDkl56Nt02qJugfZrVk%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;225&quot; height=&quot;225&quot; data-filename=&quot;프로그래머스.png&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;225&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/72412&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://programmers.co.kr/learn/courses/30/lessons/72412&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1650362934767&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;코딩테스트 연습 - 순위 검색&quot; data-og-description=&quot;[&amp;quot;java backend junior pizza 150&amp;quot;,&amp;quot;python frontend senior chicken 210&amp;quot;,&amp;quot;python frontend senior chicken 150&amp;quot;,&amp;quot;cpp backend senior pizza 260&amp;quot;,&amp;quot;java backend junior chicken 80&amp;quot;,&amp;quot;python backend senior chicken 50&amp;quot;] [&amp;quot;java and backend and junior and pizza 100&amp;quot;,&amp;quot;pyt&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/72412&quot; data-og-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/72412&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/kseCY/hyN6RTiWYy/pkNhQ4UykHbupZejPleTPk/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/bPZRIR/hyN61Ioakv/8CZnESkKrPZKmPiwADCbgK/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/72412&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/72412&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/kseCY/hyN6RTiWYy/pkNhQ4UykHbupZejPleTPk/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/bPZRIR/hyN61Ioakv/8CZnESkKrPZKmPiwADCbgK/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626');&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;코딩테스트 연습 - 순위 검색&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;[&quot;java backend junior pizza 150&quot;,&quot;python frontend senior chicken 210&quot;,&quot;python frontend senior chicken 150&quot;,&quot;cpp backend senior pizza 260&quot;,&quot;java backend junior chicken 80&quot;,&quot;python backend senior chicken 50&quot;] [&quot;java and backend and junior and pizza 100&quot;,&quot;pyt&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&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;
&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;Level 2 문제였는대 저는 개인적으로 조금 어려웠던 문제였습니다!&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul id=&quot;tab&quot; 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;div data-challengeable-id=&quot;7420&quot; data-challengeable-type=&quot;algorithm&quot; data-algorithm-type=&quot;standard&quot; data-language=&quot;kotlin&quot; data-user-id=&quot;248764&quot; data-interface-type=&quot;function&quot; data-challenge-web-evaluation-code=&quot;&quot;&gt;
&lt;div&gt;
&lt;div id=&quot;tour2&quot;&gt;
&lt;div&gt;문제 설명
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.]&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;카카오는 하반기 경력 개발자 공개채용을 진행 중에 있으며 현재 지원서 접수와 코딩테스트가 종료되었습니다. 이번 채용에서 지원자는 지원서 작성 시 아래와 같이 4가지 항목을 반드시 선택하도록 하였습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;코딩테스트 참여 개발언어 항목에 cpp, java, python 중 하나를 선택해야 합니다.&lt;/li&gt;
&lt;li&gt;지원 직군 항목에 backend와 frontend 중 하나를 선택해야 합니다.&lt;/li&gt;
&lt;li&gt;지원 경력구분 항목에 junior와 senior 중 하나를 선택해야 합니다.&lt;/li&gt;
&lt;li&gt;선호하는 소울푸드로 chicken과 pizza 중 하나를 선택해야 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인재영입팀에 근무하고 있는&lt;span&gt;&amp;nbsp;&lt;/span&gt;니니즈는 코딩테스트 결과를 분석하여 채용에 참여한 개발팀들에 제공하기 위해 지원자들의 지원 조건을 선택하면 해당 조건에 맞는 지원자가 몇 명인 지 쉽게 알 수 있는 도구를 만들고 있습니다.&lt;br /&gt;예를 들어, 개발팀에서 궁금해하는 문의사항은 다음과 같은 형태가 될 수 있습니다.&lt;br /&gt;코딩테스트에 java로 참여했으며, backend 직군을 선택했고, junior 경력이면서, 소울푸드로 pizza를 선택한 사람 중 코딩테스트 점수를 50점 이상 받은 지원자는 몇 명인가?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 이 외에도 각 개발팀의 상황에 따라 아래와 같이 다양한 형태의 문의가 있을 수 있습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;코딩테스트에 python으로 참여했으며, frontend 직군을 선택했고, senior 경력이면서, 소울푸드로 chicken을 선택한 사람 중 코딩테스트 점수를 100점 이상 받은 사람은 모두 몇 명인가?&lt;/li&gt;
&lt;li&gt;코딩테스트에 cpp로 참여했으며, senior 경력이면서, 소울푸드로 pizza를 선택한 사람 중 코딩테스트 점수를 100점 이상 받은 사람은 모두 몇 명인가?&lt;/li&gt;
&lt;li&gt;backend 직군을 선택했고, senior 경력이면서 코딩테스트 점수를 200점 이상 받은 사람은 모두 몇 명인가?&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;소울푸드로 chicken을 선택한 사람 중 코딩테스트 점수를 250점 이상 받은 사람은 모두 몇 명인가?&lt;/li&gt;
&lt;li&gt;코딩테스트 점수를 150점 이상 받은 사람은 모두 몇 명인가?&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 개발팀에서 궁금해하는 내용은 다음과 같은 형태를 갖습니다.&lt;/p&gt;
&lt;div&gt;
&lt;pre class=&quot;asciidoc&quot;&gt;&lt;code&gt;* [조건]을 만족하는 사람 중 코딩테스트 점수를 X점 이상 받은 사람은 모두 몇 명인가?
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;[문제]&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지원자가 지원서에 입력한 4가지의 정보와 획득한 코딩테스트 점수를 하나의 문자열로 구성한 값의 배열 info, 개발팀이 궁금해하는 문의조건이 문자열 형태로 담긴 배열 query가 매개변수로 주어질 때,&lt;br /&gt;각 문의조건에 해당하는 사람들의 숫자를 순서대로 배열에 담아 return 하도록 solution 함수를 완성해 주세요.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;[제한사항]&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;info 배열의 크기는 1 이상 50,000 이하입니다.&lt;/li&gt;
&lt;li&gt;info 배열 각 원소의 값은 지원자가 지원서에 입력한 4가지 값과 코딩테스트 점수를 합친 &quot;개발언어 직군 경력 소울푸드 점수&quot; 형식입니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;개발언어는 cpp, java, python 중 하나입니다.&lt;/li&gt;
&lt;li&gt;직군은 backend, frontend 중 하나입니다.&lt;/li&gt;
&lt;li&gt;경력은 junior, senior 중 하나입니다.&lt;/li&gt;
&lt;li&gt;소울푸드는 chicken, pizza 중 하나입니다.&lt;/li&gt;
&lt;li&gt;점수는 코딩테스트 점수를 의미하며, 1 이상 100,000 이하인 자연수입니다.&lt;/li&gt;
&lt;li&gt;각 단어는 공백문자(스페이스 바) 하나로 구분되어 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;query 배열의 크기는 1 이상 100,000 이하입니다.&lt;/li&gt;
&lt;li&gt;query의 각 문자열은 &quot;[조건] X&quot; 형식입니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;[조건]은 &quot;개발언어 and 직군 and 경력 and 소울푸드&quot; 형식의 문자열입니다.&lt;/li&gt;
&lt;li&gt;언어는 cpp, java, python, - 중 하나입니다.&lt;/li&gt;
&lt;li&gt;직군은 backend, frontend, - 중 하나입니다.&lt;/li&gt;
&lt;li&gt;경력은 junior, senior, - 중 하나입니다.&lt;/li&gt;
&lt;li&gt;소울푸드는 chicken, pizza, - 중 하나입니다.&lt;/li&gt;
&lt;li&gt;'-' 표시는 해당 조건을 고려하지 않겠다는 의미입니다.&lt;/li&gt;
&lt;li&gt;X는 코딩테스트 점수를 의미하며 조건을 만족하는 사람 중 X점 이상 받은 사람은 모두 몇 명인 지를 의미합니다.&lt;/li&gt;
&lt;li&gt;각 단어는 공백문자(스페이스 바) 하나로 구분되어 있습니다.&lt;/li&gt;
&lt;li&gt;예를 들면, &quot;cpp and - and senior and pizza 500&quot;은 &quot;cpp로 코딩테스트를 봤으며, 경력은 senior 이면서 소울푸드로 pizza를 선택한 지원자 중 코딩테스트 점수를 500점 이상 받은 사람은 모두 몇 명인가?&quot;를 의미합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;b&gt;[입출력 예]&lt;/b&gt;infoqueryresult
&lt;table style=&quot;border-collapse: collapse; width: 103.48837209302326%; height: 264px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 46.27906976744186%;&quot;&gt;[&quot;java backend junior pizza 150&quot;,&quot;python frontend senior chicken 210&quot;,&quot;python frontend senior chicken 150&quot;,&quot;cpp backend senior pizza 260&quot;,&quot;java backend junior chicken 80&quot;,&quot;python backend senior chicken 50&quot;]&lt;/td&gt;
&lt;td style=&quot;width: 47.65612751502483%;&quot;&gt;[&quot;java and backend and junior and pizza 100&quot;,&quot;python and frontend and senior and chicken 200&quot;,&quot;cpp and - and senior and pizza 250&quot;,&quot;- and backend and senior and - 150&quot;,&quot;- and - and - and chicken 100&quot;,&quot;- and - and - and - 150&quot;]&lt;/td&gt;
&lt;td style=&quot;width: 7.227593415207731%;&quot;&gt;[1,1,1,1,2,4]&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 문제는 단순히 완전탐색으로 풀 경우 효율성 0점을 받는 문제입니다!&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HashMap 으로 각 경우의 수를 Key로 코테 점수를 value로 저장 한 다음&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;p data-ke-size=&quot;size16&quot;&gt;예를 들어서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;java backend junior pizza 150 &amp;nbsp;&amp;lt;- &amp;nbsp;이 info 데이터는&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;key - &amp;gt; javabackendjuniorpizza&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;value -&amp;gt; ArrayList().add(150)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인 데이터를 hashmap에 저장합니다!&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;p data-ke-size=&quot;size16&quot;&gt;왜냐하면 쿼리에서 &quot;-&quot; 인 경우가 있기 때문입니다&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 앞서 key만 저장하는 것이 아닌&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;-&quot; 가 들어갈 수 있는 모든 경우의 key 값들을 저장한 다음 문제를 풀어야 합니다!&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex) -backendjuniorpizza , java--pizza , -----&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1650363360312&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Solution {
    private var map = HashMap&amp;lt;String,MutableList&amp;lt;Int&amp;gt;&amp;gt;()
    fun solution(info: Array&amp;lt;String&amp;gt;, query: Array&amp;lt;String&amp;gt;): IntArray {
        var answer: IntArray = intArrayOf()

        answer = IntArray(query.size)

        for(i in info.indices){

            var array = info[i].split(&quot; &quot;).toTypedArray()
            setting(0 ,&quot;&quot;, array)
        }

        map.values.forEach{ it.sort() }

        for(i in query.indices){
            var array = query[i].split(&quot; and &quot;)
            var score = array[3].split(&quot; &quot;) // ex pizza 100 인 경우 and 로 구분되어 있지 않기 때문에 한번 더 split 을 해줘야함 
            var key = &quot;${array[0]}${array[1]}${array[2]}${score[0]}&quot;
            var list =map.getOrDefault(key, mutableListOf())

            if(list.size==0){
                answer[i]=0
            }else{
                answer[i] = bs(list,score[1].toInt())
            }
        }
        return answer
    }
    fun setting(depth : Int , key : String , array  : Array&amp;lt;String&amp;gt;){

        if(depth==4){
            var list = map.getOrDefault(key , ArrayList())

            list.add(array[4].toInt())
            map[key] = list
            return
        }else{

           setting(depth+1 , &quot;${key}${array[depth]}&quot;,array)
            setting(depth+1 ,&quot;${key}-&quot;,array)


        }
    }


    fun bs(list: MutableList&amp;lt;Int&amp;gt;, target: Int): Int {
        var start = 0
        var end = list.size - 1

        while (start &amp;lt;= end) {
            val mid = (start + end) / 2
            if (list[mid] &amp;gt;= target) {
                end = mid - 1
            } else {
                start = mid + 1
            }
        }

        return list.size - start
    }
}



fun main(){
var solution = Solution()

    var answer = solution.solution(arrayOf(&quot;java backend junior pizza 150&quot;,&quot;python frontend senior chicken 210&quot;,
        &quot;python frontend senior chicken 150&quot;,&quot;cpp backend senior pizza 260&quot;,&quot;java backend junior chicken 80&quot;,&quot;python backend senior chicken 50&quot;),
    arrayOf(&quot;java and backend and junior and pizza 100&quot;,&quot;python and frontend and senior and chicken 200&quot;,
        &quot;cpp and - and senior and pizza 250&quot;,&quot;- and backend and senior and - 150&quot;,&quot;- and - and - and chicken 100&quot;,&quot;- and - and - and - 150&quot;))
    for(i in answer.indices){
        println(answer[i])
    }
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>코딩테스트</category>
      <author>제이쓰은</author>
      <guid isPermaLink="true">https://jason-api.tistory.com/164</guid>
      <comments>https://jason-api.tistory.com/164#entry164comment</comments>
      <pubDate>Tue, 19 Apr 2022 19:16:07 +0900</pubDate>
    </item>
    <item>
      <title>프로그래머스 신고 결과 받기  2022 KAKAO BLIND RECRUITMENT Kotlin 코틀린</title>
      <link>https://jason-api.tistory.com/163</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;프로그래머스.png&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;225&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfTjO6/btrzx9WIz3f/OgQkTTgIGEzX8HpKsCUO1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfTjO6/btrzx9WIz3f/OgQkTTgIGEzX8HpKsCUO1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfTjO6/btrzx9WIz3f/OgQkTTgIGEzX8HpKsCUO1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfTjO6%2Fbtrzx9WIz3f%2FOgQkTTgIGEzX8HpKsCUO1k%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;225&quot; height=&quot;225&quot; data-filename=&quot;프로그래머스.png&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;225&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/92334?language=kotlin&quot;&gt;https://programmers.co.kr/learn/courses/30/lessons/92334?language=kotlin&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1650096991529&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;코딩테스트 연습 - 신고 결과 받기&quot; data-og-description=&quot;문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 &quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/92334?language=kotlin&quot; data-og-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/92334?language=kotlin&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/gkry2/hyN2JJP9zA/7pJnLWDircdvPMu0TWIiL0/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/AG1OQ/hyN2Mfuhkq/EK1uptTrgP29RJne4ThKPK/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/92334?language=kotlin&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/92334?language=kotlin&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/gkry2/hyN2JJP9zA/7pJnLWDircdvPMu0TWIiL0/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/AG1OQ/hyN2Mfuhkq/EK1uptTrgP29RJne4ThKPK/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626');&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;코딩테스트 연습 - 신고 결과 받기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;안녕하세요!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 프로그래머스 Level 1 신고 결과 받기 문제를 풀어봤습니다!&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;문제 설명&lt;/p&gt;
&lt;div&gt;문제 설명
&lt;p data-ke-size=&quot;size16&quot;&gt;신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&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;li&gt;한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;k번 이상 신고된 유저는 게시판 이용이 정지되며, 해당 유저를 신고한 모든 유저에게 정지 사실을 메일로 발송합니다.
&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;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음은 전체 유저 목록이 [&quot;muzi&quot;, &quot;frodo&quot;, &quot;apeach&quot;, &quot;neo&quot;]이고, k = 2(즉, 2번 이상 신고당하면 이용 정지)인 경우의 예시입니다.&lt;/p&gt;
유저 ID유저가 신고한 ID설명
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&quot;muzi&quot;&lt;/td&gt;
&lt;td&gt;&quot;frodo&quot;&lt;/td&gt;
&lt;td&gt;&quot;muzi&quot;가 &quot;frodo&quot;를 신고했습니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&quot;apeach&quot;&lt;/td&gt;
&lt;td&gt;&quot;frodo&quot;&lt;/td&gt;
&lt;td&gt;&quot;apeach&quot;가 &quot;frodo&quot;를 신고했습니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&quot;frodo&quot;&lt;/td&gt;
&lt;td&gt;&quot;neo&quot;&lt;/td&gt;
&lt;td&gt;&quot;frodo&quot;가 &quot;neo&quot;를 신고했습니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&quot;muzi&quot;&lt;/td&gt;
&lt;td&gt;&quot;neo&quot;&lt;/td&gt;
&lt;td&gt;&quot;muzi&quot;가 &quot;neo&quot;를 신고했습니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&quot;apeach&quot;&lt;/td&gt;
&lt;td&gt;&quot;muzi&quot;&lt;/td&gt;
&lt;td&gt;&quot;apeach&quot;가 &quot;muzi&quot;를 신고했습니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 유저별로 신고당한 횟수는 다음과 같습니다.&lt;/p&gt;
유저 ID신고당한 횟수
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&quot;muzi&quot;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&quot;frodo&quot;&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&quot;apeach&quot;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&quot;neo&quot;&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 예시에서는 2번 이상 신고당한 &quot;frodo&quot;와 &quot;neo&quot;의 게시판 이용이 정지됩니다. 이때, 각 유저별로 신고한 아이디와 정지된 아이디를 정리하면 다음과 같습니다.&lt;/p&gt;
유저 ID유저가 신고한 ID정지된 ID
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&quot;muzi&quot;&lt;/td&gt;
&lt;td&gt;[&quot;frodo&quot;, &quot;neo&quot;]&lt;/td&gt;
&lt;td&gt;[&quot;frodo&quot;, &quot;neo&quot;]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&quot;frodo&quot;&lt;/td&gt;
&lt;td&gt;[&quot;neo&quot;]&lt;/td&gt;
&lt;td&gt;[&quot;neo&quot;]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&quot;apeach&quot;&lt;/td&gt;
&lt;td&gt;[&quot;muzi&quot;, &quot;frodo&quot;]&lt;/td&gt;
&lt;td&gt;[&quot;frodo&quot;]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&quot;neo&quot;&lt;/td&gt;
&lt;td&gt;없음&lt;/td&gt;
&lt;td&gt;없음&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 &quot;muzi&quot;는 처리 결과 메일을 2회, &quot;frodo&quot;와 &quot;apeach&quot;는 각각 처리 결과 메일을 1회 받게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이용자의 ID가 담긴 문자열 배열&lt;span&gt;&amp;nbsp;&lt;/span&gt;id_list, 각 이용자가 신고한 이용자의 ID 정보가 담긴 문자열 배열&lt;span&gt;&amp;nbsp;&lt;/span&gt;report, 정지 기준이 되는 신고 횟수&lt;span&gt;&amp;nbsp;&lt;/span&gt;k가 매개변수로 주어질 때, 각 유저별로 처리 결과 메일을 받은 횟수를 배열에 담아 return 하도록 solution 함수를 완성해주세요.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;제한사항
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;2 &amp;le;&lt;span&gt;&amp;nbsp;&lt;/span&gt;id_list의 길이 &amp;le; 1,000
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1 &amp;le;&lt;span&gt;&amp;nbsp;&lt;/span&gt;id_list의 원소 길이 &amp;le; 10&lt;/li&gt;
&lt;li&gt;id_list의 원소는 이용자의 id를 나타내는 문자열이며 알파벳 소문자로만 이루어져 있습니다.&lt;/li&gt;
&lt;li&gt;id_list에는 같은 아이디가 중복해서 들어있지 않습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;1 &amp;le;&lt;span&gt;&amp;nbsp;&lt;/span&gt;report의 길이 &amp;le; 200,000
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;3 &amp;le;&lt;span&gt;&amp;nbsp;&lt;/span&gt;report의 원소 길이 &amp;le; 21&lt;/li&gt;
&lt;li&gt;report의 원소는 &quot;이용자id 신고한id&quot;형태의 문자열입니다.&lt;/li&gt;
&lt;li&gt;예를 들어 &quot;muzi frodo&quot;의 경우 &quot;muzi&quot;가 &quot;frodo&quot;를 신고했다는 의미입니다.&lt;/li&gt;
&lt;li&gt;id는 알파벳 소문자로만 이루어져 있습니다.&lt;/li&gt;
&lt;li&gt;이용자id와 신고한id는 공백(스페이스)하나로 구분되어 있습니다.&lt;/li&gt;
&lt;li&gt;자기 자신을 신고하는 경우는 없습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;1 &amp;le;&lt;span&gt;&amp;nbsp;&lt;/span&gt;k&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;le; 200,&lt;span&gt;&amp;nbsp;&lt;/span&gt;k는 자연수입니다.&lt;/li&gt;
&lt;li&gt;return 하는 배열은&lt;span&gt;&amp;nbsp;&lt;/span&gt;id_list에 담긴 id 순서대로 각 유저가 받은 결과 메일 수를 담으면 됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;입출력 예id_listreportkresult
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;[&quot;muzi&quot;, &quot;frodo&quot;, &quot;apeach&quot;, &quot;neo&quot;]&lt;/td&gt;
&lt;td&gt;[&quot;muzi frodo&quot;,&quot;apeach frodo&quot;,&quot;frodo neo&quot;,&quot;muzi neo&quot;,&quot;apeach muzi&quot;]&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;[2,1,1,0]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[&quot;con&quot;, &quot;ryan&quot;]&lt;/td&gt;
&lt;td&gt;[&quot;ryan con&quot;, &quot;ryan con&quot;, &quot;ryan con&quot;, &quot;ryan con&quot;]&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;[0,0]&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 문제는 비교적 쉬운 문제였습니다&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HashMap을 이용하면간단 하게 문제를 풀 수 있었습니다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1650097127796&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(id_list: Array&amp;lt;String&amp;gt;, report: Array&amp;lt;String&amp;gt;, k: Int): IntArray {
        var answer: IntArray = intArrayOf()

        answer = IntArray(id_list.size)
        var map = HashMap&amp;lt;String,Int&amp;gt;()
        var indexMap = HashMap&amp;lt;String,Int&amp;gt;()
        var checkList : Array&amp;lt;IntArray&amp;gt; = Array(id_list.size){IntArray(id_list.size)}
        var reportList = ArrayList&amp;lt;String&amp;gt;()
        for(i in id_list.indices){
            map.put(id_list[i],0)
            indexMap.put(id_list[i],i)
        }

        for(i in report.indices){
            var array = report[i].split(&quot; &quot;)
            var u1 = indexMap.get(array[0])
            var u2 = indexMap.get(array[1])
            if(checkList[u1!!][u2!!]==0){
                map.put(array[1],map.get(array[1])!!+1)
                checkList[u1][u2]=1
                reportList.add(report[i])
            }
        }

        for(i in reportList.indices){
            var array = reportList[i].split(&quot; &quot;)
            var userIndex= indexMap.get(array[0])
            if(map.get(array[1])!!&amp;gt;=k){
                answer[userIndex!!]++
            }
        }

        return answer
    }
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>코딩테스트</category>
      <category>카카오 채용</category>
      <category>코틀린</category>
      <category>프로그래머스</category>
      <author>제이쓰은</author>
      <guid isPermaLink="true">https://jason-api.tistory.com/163</guid>
      <comments>https://jason-api.tistory.com/163#entry163comment</comments>
      <pubDate>Sat, 16 Apr 2022 17:19:21 +0900</pubDate>
    </item>
    <item>
      <title>백준 18111번 마인크래프트 코틀린</title>
      <link>https://jason-api.tistory.com/162</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2022-04-02 오후 4.56.07.png&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;244&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ym3ds/btryigX9LRo/PfZo8NojM7z3tKdobb7GgK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ym3ds/btryigX9LRo/PfZo8NojM7z3tKdobb7GgK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ym3ds/btryigX9LRo/PfZo8NojM7z3tKdobb7GgK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYm3ds%2FbtryigX9LRo%2FPfZo8NojM7z3tKdobb7GgK%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;776&quot; height=&quot;244&quot; data-filename=&quot;스크린샷 2022-04-02 오후 4.56.07.png&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;244&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/18111&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.acmicpc.net/problem/18111&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1649083114690&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;18111번: 마인크래프트&quot; data-og-description=&quot;팀 레드시프트는&amp;nbsp;대회 준비를 하다가 지루해져서 샌드박스 게임인 &amp;lsquo;마인크래프트&amp;rsquo;를 켰다. 마인크래프트는 1 &amp;times;&amp;nbsp;1 &amp;times;&amp;nbsp;1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 &quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/18111&quot; data-og-url=&quot;https://www.acmicpc.net/problem/18111&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dT8PBK/hyNVUJIZ5K/NYBkkeYQaZL1CNSZsvh4h0/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480,https://scrap.kakaocdn.net/dn/kJXMK/hyNUtAfcpQ/U0QiZi0dLQGzWcKtZipN11/img.png?width=2048&amp;amp;height=1884&amp;amp;face=0_0_2048_1884&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/18111&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/18111&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dT8PBK/hyNVUJIZ5K/NYBkkeYQaZL1CNSZsvh4h0/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480,https://scrap.kakaocdn.net/dn/kJXMK/hyNUtAfcpQ/U0QiZi0dLQGzWcKtZipN11/img.png?width=2048&amp;amp;height=1884&amp;amp;face=0_0_2048_1884');&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;18111번: 마인크래프트&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;팀 레드시프트는&amp;nbsp;대회 준비를 하다가 지루해져서 샌드박스 게임인 &amp;lsquo;마인크래프트&amp;rsquo;를 켰다. 마인크래프트는 1 &amp;times;&amp;nbsp;1 &amp;times;&amp;nbsp;1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;안녕하세요!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 백준 18111번 문제 마인크래프트 문제를 풀어봤습니다!&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;p data-ke-size=&quot;size16&quot;&gt;이 문제를 통해서 데이터의 크기가 이정도면 단순 완전탐색으로도 풀 수 있는 문제라는 것을 알 수 있었습니다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h1&gt;&lt;span&gt;마인크래프트&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #5cb85c; color: #ffffff;&quot;&gt;성공&lt;/span&gt;&lt;/h1&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;시간 제한메모리 제한제출정답맞힌 사람정답 비율
&lt;table id=&quot;problem-info&quot; style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1 초 (추가 시간 없음)&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;1024 MB&lt;/td&gt;
&lt;td&gt;20974&lt;/td&gt;
&lt;td&gt;5848&lt;/td&gt;
&lt;td&gt;4327&lt;/td&gt;
&lt;td&gt;25.411%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;problem-body&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;문제&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_description&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;팀 레드시프트는&amp;nbsp;대회 준비를 하다가 지루해져서 샌드박스 게임인 &amp;lsquo;마인크래프트&amp;rsquo;를 켰다. 마인크래프트는 1 &amp;times;&amp;nbsp;1 &amp;times;&amp;nbsp;1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 땅을 파거나 집을 지을 수 있는 게임이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;목재를 충분히 모은 lvalue는 집을 짓기로 하였다. 하지만 고르지 않은 땅에는 집을 지을 수 없기 때문에 땅의 높이를 모두 동일하게 만드는 &amp;lsquo;땅 고르기&amp;rsquo;&amp;nbsp;작업을 해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;lvalue는 세로&lt;span&gt;&amp;nbsp;&lt;/span&gt;N, 가로&lt;span&gt;&amp;nbsp;&lt;/span&gt;M&lt;span&gt;&amp;nbsp;&lt;/span&gt;크기의 집터를 골랐다. 집터 맨 왼쪽 위의 좌표는 (0, 0)이다. 우리의 목적은 이 집터 내의 땅의 높이를 일정하게 바꾸는 것이다. 우리는 다음과 같은 두 종류의 작업을 할 수 있다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;좌표 (i,&lt;span&gt;&amp;nbsp;&lt;/span&gt;j)의 가장 위에 있는 블록을 제거하여 인벤토리에 넣는다.&lt;/li&gt;
&lt;li&gt;인벤토리에서 블록 하나를 꺼내어 좌표 (i,&lt;span&gt;&amp;nbsp;&lt;/span&gt;j)의 가장 위에 있는 블록 위에 놓는다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1번 작업은 2초가 걸리며, 2번 작업은 1초가 걸린다. 밤에는 무서운 몬스터들이 나오기 때문에 최대한 빨리 땅 고르기 작업을 마쳐야 한다. &amp;lsquo;땅 고르기&amp;rsquo;&amp;nbsp;작업에 걸리는 최소 시간과 그 경우 땅의 높이를 출력하시오.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단, 집터 아래에 동굴 등 빈 공간은 존재하지 않으며, 집터 바깥에서 블록을 가져올 수 없다. 또한, 작업을 시작할 때 인벤토리에는&lt;span&gt;&amp;nbsp;&lt;/span&gt;B개의 블록이 들어 있다. 땅의 높이는 256블록을 초과할 수 없으며, 음수가 될 수 없다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;입력&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_input&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫째 줄에&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;i&gt;N, M&lt;/i&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;B가 주어진다. (1&amp;nbsp;&amp;le;&amp;nbsp;M,&lt;span&gt;&amp;nbsp;&lt;/span&gt;N&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;le; 500, 0 &amp;le;&amp;nbsp;B&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;le;&amp;nbsp;6.4 &amp;times; 107)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;둘째 줄부터&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;i&gt;N&lt;/i&gt;개의 줄에 각각&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;i&gt;M&lt;/i&gt;개의 정수로 땅의 높이가 주어진다. (i&amp;nbsp;+ 2)번째 줄의&amp;nbsp;(j&amp;nbsp;+ 1)번째 수는 좌표 (i,&lt;span&gt;&amp;nbsp;&lt;/span&gt;j)에서의 땅의 높이를 나타낸다. 땅의 높이는 256보다 작거나 같은 자연수 또는 0이다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;출력&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_output&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫째 줄에 땅을 고르는 데 걸리는 시간과 땅의 높이를 출력하시오. 답이 여러 개 있다면 그중에서 땅의 높이가 가장 높은 것을 출력하시오.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 입력 1&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-input-1&quot; class=&quot;basic&quot;&gt;&lt;code&gt;3 4 99
0 0 0 0
0 0 0 0
0 0 0 1
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 출력 1&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-output-1&quot; class=&quot;basic&quot;&gt;&lt;code&gt;2 0
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div id=&quot;problem_sample_explain_1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;맨 오른쪽 아래의 블록을 제거하면 모두 높이가 0으로 고른 상태가 된다. 따라서 블럭을 한 번 제거하는 시간 2초가 소요된다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 입력 2&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-input-2&quot; class=&quot;basic&quot;&gt;&lt;code&gt;3 4 1
64 64 64 64
64 64 64 64
64 64 64 63
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 출력 2&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-output-2&quot; class=&quot;basic&quot;&gt;&lt;code&gt;1 64
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div id=&quot;problem_sample_explain_2&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;1884&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/09R1G/btrykhJk3XO/pqeYun4y7Vbr10QkDrHx60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/09R1G/btrykhJk3XO/pqeYun4y7Vbr10QkDrHx60/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/09R1G/btrykhJk3XO/pqeYun4y7Vbr10QkDrHx60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F09R1G%2FbtrykhJk3XO%2FpqeYun4y7Vbr10QkDrHx60%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;477&quot; height=&quot;439&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;1884&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인벤토리에 블록이 하나 있기 때문에, 맨 오른쪽 아래에 블록을 하나 채우면 된다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 입력 3&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-input-3&quot; class=&quot;basic&quot;&gt;&lt;code&gt;3 4 0
64 64 64 64
64 64 64 64
64 64 64 63
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 출력 3&lt;span&gt;&amp;nbsp;&lt;/span&gt;복사&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-output-3&quot; class=&quot;basic&quot;&gt;&lt;code&gt;22 63
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div id=&quot;problem_sample_explain_3&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인벤토리가 비어 있기 때문에, 맨 오른쪽 아래를 제외한 모든 좌표에서 블록을 하나씩 제거해야 한다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&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;즉 가장 낮은 높이가 1이고 가장 높은 높이가 10일 경우&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1부터 ~10까지 각 블록들의 높이를 만들어보는 겁니다!&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그중 인벤토리 블록이 양수이면 가능한 높이 마이너스 일 경우 해당 높이는 만들수 없습니다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1649083476205&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import kotlin.math.abs
val bre = System.`in`.bufferedReader()
fun main() = with(System.out.bufferedWriter()){

    var (n,m,b) = bre.readLine().split(&quot; &quot;).map { it.toInt() }
    var block : Array&amp;lt;IntArray&amp;gt; = Array(n){ IntArray(m) }
    var max = -1
    var min = 257
    var timeMin=Int.MAX_VALUE
    var height=0

    for(i in 0 until n){
        var temp = bre.readLine().split(&quot; &quot;).map { it.toInt() }

        for(j in temp.indices){
            block[i][j] = temp.get(j)
            min = Math.min(min,block[i][j])
            max = Math.max(max,block[i][j])
        }
    }

for(i in min until max+1){
    var inventory = b
    var time = 0

    for(j in 0 until n){

        for(a in 0 until  m){

            var diff = i-block[j][a]

            if(diff&amp;gt;0){
                time +=diff
                inventory -= diff

            }else if(diff&amp;lt;0){
                time += abs(diff)*2
                inventory += abs(diff)
            }
        }

    }
    if(inventory&amp;gt;=0){
        if(time&amp;lt;=timeMin ){

            timeMin = time
            height = i
        }
    }
}
println(&quot;${timeMin} ${height}&quot;)
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>코딩테스트</category>
      <category>백준</category>
      <category>코딩테스트</category>
      <category>코틀린</category>
      <author>제이쓰은</author>
      <guid isPermaLink="true">https://jason-api.tistory.com/162</guid>
      <comments>https://jason-api.tistory.com/162#entry162comment</comments>
      <pubDate>Mon, 4 Apr 2022 23:44:45 +0900</pubDate>
    </item>
  </channel>
</rss>