<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>HTTP:!</title>
    <link>https://hongprogrammer.tistory.com/</link>
    <description>HTTP:!</description>
    <language>ko</language>
    <pubDate>Tue, 7 Apr 2026 11:58:52 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>홍열</managingEditor>
    <item>
      <title>[iOS 교육] window를 생성하는 방법</title>
      <link>https://hongprogrammer.tistory.com/212</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;window를 생성하는 방법&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;UIWindow 클래스 사용&lt;/li&gt;
&lt;li&gt;Window를 생성하는 전형적인 코드&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1683165271887&quot; class=&quot;swift&quot; data-ke-language=&quot;swift&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;window = UIWindow()
window?.backgroundColor = UIColor.white
window?.makeKeyAndVisible()&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Programming/Swift(iOS)</category>
      <author>홍열</author>
      <guid isPermaLink="true">https://hongprogrammer.tistory.com/212</guid>
      <comments>https://hongprogrammer.tistory.com/212#entry212comment</comments>
      <pubDate>Thu, 4 May 2023 10:57:30 +0900</pubDate>
    </item>
    <item>
      <title>[iOS 교육]</title>
      <link>https://hongprogrammer.tistory.com/211</link>
      <description>&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://hongprogrammer.tistory.com/210&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://hongprogrammer.tistory.com/210&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1683160616887&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[iOS교육] XCode가 생성한 파일 삭제 방법&quot; data-og-description=&quot;XCode가 자동 생성한 파일을 제거하는 방법 1) 자동 생성된 파일 제거 .swift 파일 3개 AppDelegate, SeceneDelegate, ViewController storyboard 파일 2개 Main, LaunchScreen 2) info에서 &amp;quot;Application Scene Manifest&amp;quot; 제거 3) 프로&quot; data-og-host=&quot;hongprogrammer.tistory.com&quot; data-og-source-url=&quot;https://hongprogrammer.tistory.com/210&quot; data-og-url=&quot;https://hongprogrammer.tistory.com/210&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/sQid0/hyStYiaecB/3ypaK37PReWrWWC1Q2Gmo1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/Mz1an/hyStNubRB9/4SsEPxrq7zMHu4x9OkKDf0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://hongprogrammer.tistory.com/210&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://hongprogrammer.tistory.com/210&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/sQid0/hyStYiaecB/3ypaK37PReWrWWC1Q2Gmo1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/Mz1an/hyStNubRB9/4SsEPxrq7zMHu4x9OkKDf0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&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;[iOS교육] XCode가 생성한 파일 삭제 방법&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;XCode가 자동 생성한 파일을 제거하는 방법 1) 자동 생성된 파일 제거 .swift 파일 3개 AppDelegate, SeceneDelegate, ViewController storyboard 파일 2개 Main, LaunchScreen 2) info에서 &quot;Application Scene Manifest&quot; 제거 3) 프로&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;hongprogrammer.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일 삭제한 순수 상태에서 Code로 iOS Programming 진행&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;iOS 프로그램이 지켜야되는 규칙&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;UIApplicationDelegate 프로토콜을 채택한 클랙스를 만들어야한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 관례적으로 AppDelegate 클래스 사용&lt;/p&gt;
&lt;pre id=&quot;code_1683160937156&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;swift&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//
//  AppDelegate.swift
//  edu_ios_1
//
//  Created by hy on 2023/05/04.
//

import Foundation
import UIKit

class AppDelegate: UIResponder, UIApplicationDelegate
{
    
}&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;main.swift에서&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;UIApplicationMain() 함수 호출&lt;/li&gt;
&lt;li&gt;4번째 인자로 AppDelegate에서 만든 클래스 이름을 전달&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1683160918999&quot; class=&quot;swift&quot; data-ke-language=&quot;swift&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//
//  main.swift
//  edu_ios_1
//
//  Created by hy on 2023/05/04.
//

import Foundation
import UIKit

let argc = CommandLine.argc
let argv = UnsafeMutableRawPointer(CommandLine.unsafeArgv).bindMemory(to: UnsafeMutablePointer&amp;lt;Int8&amp;gt;?.self, capacity: Int(CommandLine.argc))

UIApplicationMain(argc, argv, nil, NSStringFromClass(AppDelegate.self))&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;왜 이 code를 만들었는가&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;error 발생 -&amp;gt; OS -&amp;gt; Event Queue -&amp;gt; Application Object(UIApplication 타입의 객체), main run loop&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; AppDelegate Object(App의 상태 변화에 대응)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;UIApplicationMain() 함수&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;UIApplication 타입의 객체를 생성해서 main run loop 수행&lt;/li&gt;
&lt;li&gt;마지막 인자로 전달된 클래스의 객체를 생성해서 Application Object에 등록&lt;/li&gt;
&lt;li&gt;발생된 event를 AppDelegate객체에 전달(App 상태 변화와 관련된 이벤트)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AppDelegate에서 여러가지 일을 할 수 있음&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;앱이 실행될때, 앱이 종료될때 등등..여러 이벤트에 대한 대응 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1683161313900&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;swift&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class AppDelegate: UIResponder, UIApplicationDelegate
{
    // 앱이 실행될때 찍히게 해놓는다
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -&amp;gt; Bool {
        print(&quot;Launch App&quot;)
        return true
    }
}&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;@main&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Applicationd의 진입점 클래스를 지정&lt;/li&gt;
&lt;li&gt;main.swift를 만들 필요가 없다.&lt;/li&gt;
&lt;li&gt;예전에는 @UIApplicationMain을 사용&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Programming/Swift(iOS)</category>
      <author>홍열</author>
      <guid isPermaLink="true">https://hongprogrammer.tistory.com/211</guid>
      <comments>https://hongprogrammer.tistory.com/211#entry211comment</comments>
      <pubDate>Thu, 4 May 2023 10:05:27 +0900</pubDate>
    </item>
    <item>
      <title>[iOS교육] XCode가 생성한 파일 삭제 방법</title>
      <link>https://hongprogrammer.tistory.com/210</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;XCode가 자동 생성한 파일을 제거하는 방법 #1&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) 자동 생성된 파일 제거&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 style=&quot;width: 17.9069%;&quot;&gt;.swift 파일 3개&lt;/td&gt;
&lt;td style=&quot;width: 82.0931%;&quot;&gt;AppDelegate, SeceneDelegate, ViewController&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 17.9069%;&quot;&gt;storyboard 파일 2개&lt;/td&gt;
&lt;td style=&quot;width: 82.0931%;&quot;&gt;Main, LaunchScreen&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) info에서 &quot;Application Scene Manifest&quot; 제거&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3) 프로젝트 설정에서 아래 2개 항목 값을 제거(공백상태)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Main Interface&lt;/li&gt;
&lt;li&gt;Launch screen File&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;emulator로 실행시켜보면, 앱이 실행되었다가 바로 사라짐&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;XCode가 자동 생성한 파일을 제거하는 방법 #2&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) 자동 생성된 파일 제거&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 style=&quot;width: 17.9069%;&quot;&gt;.swift 파일 3개&lt;/td&gt;
&lt;td style=&quot;width: 82.0931%;&quot;&gt;SeceneDelegate, ViewController&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 17.9069%;&quot;&gt;storyboard 파일 2개&lt;/td&gt;
&lt;td style=&quot;width: 82.0931%;&quot;&gt;Main, LaunchScreen&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2) info에서 &quot;Application Scene Manifest&quot; 제거&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;3) 프로젝트 설정에서 아래 2개 항목 값을 제거(공백상태)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Main Interface&lt;/li&gt;
&lt;li&gt;Launch screen File&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4) AppDelegate에서 SceneDelegate 함수 2개 제거&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5) AppDelegated에서 @main 추가&lt;/p&gt;
&lt;pre id=&quot;code_1683165017702&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;swift&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//
//  AppDelegate.swift
//  AppDel1
//
//  Created by hy on 2023/05/04.
//

import UIKit

@main
class AppDelegate: UIResponder, UIApplicationDelegate {



    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -&amp;gt; Bool {
        // Override point for customization after application launch.
        return true
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;emulator로 실행시켜보면, 앱이 실행되었다가 바로 사라짐&lt;/p&gt;</description>
      <category>Programming/Swift(iOS)</category>
      <category>swift</category>
      <category>Xcode</category>
      <author>홍열</author>
      <guid isPermaLink="true">https://hongprogrammer.tistory.com/210</guid>
      <comments>https://hongprogrammer.tistory.com/210#entry210comment</comments>
      <pubDate>Thu, 4 May 2023 09:31:41 +0900</pubDate>
    </item>
    <item>
      <title>10989 - 수 정렬하기</title>
      <link>https://hongprogrammer.tistory.com/209</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/10989&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.acmicpc.net/problem/10989&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1682053616358&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;10989번: 수 정렬하기 3&quot; data-og-description=&quot;첫째 줄에 수의 개수 N(1 &amp;le;&amp;nbsp;N &amp;le; 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는&amp;nbsp;10,000보다 작거나 같은 자연수이다.&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/10989&quot; data-og-url=&quot;https://www.acmicpc.net/problem/10989&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ZAlbX/hySmYm1BXV/kukj578uEr5TmhzKr2ItNk/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/10989&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/10989&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ZAlbX/hySmYm1BXV/kukj578uEr5TmhzKr2ItNk/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;10989번: 수 정렬하기 3&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 수의 개수 N(1 &amp;le;&amp;nbsp;N &amp;le; 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는&amp;nbsp;10,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;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;dict에 갯수를 표시하고 그 값만 출력하면 어떨까?&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 아마 이 방법이 계수정렬하고 비슷할듯하다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1682055427520&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import sys

t_case = int(sys.stdin.readline())

counting_lst = [0] * (10000+1)

for i in range(0, t_case):
    v1 = int(sys.stdin.readline())
    counting_lst[v1] += 1
for i in range(10001):
    if counting_lst[i] != 0:
        for j in range(counting_lst[i]):
            print(i)&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Programming/BackJoon</category>
      <category>10989</category>
      <category>backjoon</category>
      <category>계수정렬</category>
      <category>백준</category>
      <author>홍열</author>
      <guid isPermaLink="true">https://hongprogrammer.tistory.com/209</guid>
      <comments>https://hongprogrammer.tistory.com/209#entry209comment</comments>
      <pubDate>Fri, 21 Apr 2023 14:37:25 +0900</pubDate>
    </item>
    <item>
      <title>11650 - 좌표 정렬하기</title>
      <link>https://hongprogrammer.tistory.com/208</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/11650&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.acmicpc.net/problem/11650&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1682053547062&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;11650번: 좌표 정렬하기&quot; data-og-description=&quot;첫째 줄에 점의 개수 N (1 &amp;le; N &amp;le; 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 &amp;le; xi, yi &amp;le; 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/11650&quot; data-og-url=&quot;https://www.acmicpc.net/problem/11650&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/EL5CX/hySlJZhipv/KU5yK3bkFWU5PDykRiTGhk/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/11650&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/11650&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/EL5CX/hySlJZhipv/KU5yK3bkFWU5PDykRiTGhk/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;11650번: 좌표 정렬하기&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)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 &amp;le; xi, yi &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;p data-ke-size=&quot;size16&quot;&gt;튜플로 받고, 정렬하면 쉽게 푸는 문제&lt;/p&gt;
&lt;pre id=&quot;code_1682053537141&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;t_case = int(input())
lst = []
for i in range(t_case):
    x, y = input().split(' ')
    lst.append((int(x), int(y)))

lst.sort(key=lambda x: (x[0], x[1]))

for item in lst:
    print(item[0], item[1])&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Programming/BackJoon</category>
      <category>11650</category>
      <category>backjoon</category>
      <category>좌표 정렬하기</category>
      <author>홍열</author>
      <guid isPermaLink="true">https://hongprogrammer.tistory.com/208</guid>
      <comments>https://hongprogrammer.tistory.com/208#entry208comment</comments>
      <pubDate>Fri, 21 Apr 2023 14:06:17 +0900</pubDate>
    </item>
    <item>
      <title>10814 -나이순 정렬</title>
      <link>https://hongprogrammer.tistory.com/207</link>
      <description>&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/10814&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.acmicpc.net/problem/10814&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1682053343399&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;10814번: 나이순 정렬&quot; data-og-description=&quot;온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 &quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/10814&quot; data-og-url=&quot;https://www.acmicpc.net/problem/10814&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/fzfCH/hySlFo4jhf/yKCZUdKxkKfPKamoCjHXh0/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/10814&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/10814&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/fzfCH/hySlFo4jhf/yKCZUdKxkKfPKamoCjHXh0/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;10814번: 나이순 정렬&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;받은 입력을 나이순, 이름순으로 정렬한다.&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;튜플이용해서 풀고, 리스트안에 튜플을 정렬할때 lambda를 사용할 줄 알면 금방 풀겠다&lt;/p&gt;
&lt;pre id=&quot;code_1682053418905&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;t_case = int(input())
lst = []
for i in range(t_case):
    age, name = input().split(' ')
    lst.append((int(age), name))

lst.sort(key=lambda x: x[0])

for item in lst:
    print(item[0], item[1])&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Programming/BackJoon</category>
      <category>10814</category>
      <category>backjoon</category>
      <category>나이순 정렬</category>
      <category>백준</category>
      <author>홍열</author>
      <guid isPermaLink="true">https://hongprogrammer.tistory.com/207</guid>
      <comments>https://hongprogrammer.tistory.com/207#entry207comment</comments>
      <pubDate>Fri, 21 Apr 2023 14:03:53 +0900</pubDate>
    </item>
    <item>
      <title>1427 - 소트인사이트</title>
      <link>https://hongprogrammer.tistory.com/206</link>
      <description>&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/1427&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.acmicpc.net/problem/1427&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1682052416176&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;1427번: 소트인사이드&quot; data-og-description=&quot;첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/1427&quot; data-og-url=&quot;https://www.acmicpc.net/problem/1427&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1427&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/1427&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;1427번: 소트인사이드&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;int 한개를 받아서 그 안의 수를 내림차순으로 정렬하면 끝나는 문제&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;숫자를 list로 변환하고, sort하고, print문에서 end='' 옵션을 줘서 풀었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1682052475817&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import sys

lst = list(map(int, sys.stdin.readline().rstrip()))
lst.sort(reverse=True)
for i in lst:
    print(i, end='')&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 사람들의 풀이도 보면 간단히 푼다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1682052737760&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;array = input()

for i in range(9, -1, -1):
    for j in array:
        if int(j) == i:
            print(i, end='')&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Programming/BackJoon</category>
      <category>1427</category>
      <category>backjoon</category>
      <category>백ㅂ준</category>
      <category>백준</category>
      <category>소트인사이드</category>
      <author>홍열</author>
      <guid isPermaLink="true">https://hongprogrammer.tistory.com/206</guid>
      <comments>https://hongprogrammer.tistory.com/206#entry206comment</comments>
      <pubDate>Fri, 21 Apr 2023 13:46:31 +0900</pubDate>
    </item>
    <item>
      <title>11399 - ATM</title>
      <link>https://hongprogrammer.tistory.com/205</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;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;ATM은 1대이고, 각 사람마다 인출하는 시간이 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;P&lt;/span&gt;1&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;= 3, P&lt;/span&gt;2&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;= 1, P&lt;/span&gt;3&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;= 4, P&lt;/span&gt;4&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;= 3, P&lt;/span&gt;5&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;= 2&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;1번째 사람은 인출하는데 3분, 두번째는 1분, 세번째는 4분....&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: #ffffff; color: #555555; text-align: start;&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; color: #555555; text-align: start;&quot;&gt;1번째 사람 3분 = 3분&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;2번째 사람 3분 + 1분 = 4분&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;3번째 사람 3분 + 1분 + 4분 = 8분&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;4번째 사람 3분 + 1분 + 4분 + 3분&amp;nbsp; = 11분&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;5번째 사람 3분 + 1분 + 4분 + 3분 + 2분 = 13분&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: #ffffff; color: #555555; text-align: start;&quot;&gt;총 39분이 걸림&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: #ffffff; color: #555555; text-align: start;&quot;&gt;그러나 대기시간이 짧은 순서대로 인출을 하면 32분안에 해결이 된다&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: #ffffff; color: #555555; text-align: start;&quot;&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;pre id=&quot;code_1679354122711&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;n = int(input())

lst = list(map(int, input().split()))

lst.sort()

time_value = 0
for i in range(n):
    time_value += sum(lst[0:i+1])
print(time_value)&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1679354135531&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;n = int(input())

arr = list(map(int, input().split()))
arr.sort()

total = 0
ans = 0
for i in arr:
    total += i
    ans += total

#total = reduce(lambda a, b: a+b, arr, 0)

print(ans)&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Programming/BackJoon</category>
      <category>11399</category>
      <category>ATM</category>
      <category>백준</category>
      <author>홍열</author>
      <guid isPermaLink="true">https://hongprogrammer.tistory.com/205</guid>
      <comments>https://hongprogrammer.tistory.com/205#entry205comment</comments>
      <pubDate>Tue, 21 Mar 2023 08:15:44 +0900</pubDate>
    </item>
    <item>
      <title>2225 - 합분해</title>
      <link>https://hongprogrammer.tistory.com/204</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;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;0도 허용되고, 중복이 허용되고, 여러번 사용도 가능&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;예를 들어서, n = 1이고, k = 2이면 -&amp;gt; 1을 0,1만 써서 만드는 방법의 수를 구해야한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0+1, 1+0 =&amp;gt; 2가지&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;n=1이고, k=3이면, 3가지이다. n=1,k=2보다 1개가 더 늘어난다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0+0+1, 0+1+0, 1+0+0&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;n = 2, k = 2이면 2를 만드는데, 0,1,2를 사용하는 경우를 찾는것&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0+2, 2+0, 1+1 -&amp;gt; 3가지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;n = 2, k = 3이면, 총 6가지가 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0+0+2, 0+2+0, 2+0+0, 0+1+1, 1+0+1, 1+1+0&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;가로축이 n이고, 세로가 k이다. (n을 k개의 숫자로 만드는 방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1가지로 1,2,3,4,...를 만드는 방법은 (0+1, 0+2, 0+3...밖에 없다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1을 2가지 숫자로 만드는 방법은 (0+1, 1+0)으로 2가지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2를 2가지 숫자로 만다는 방법은 (0+2, 2+0, 1+1) 3가지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3을 2가지로 숫자로 만드는 방법은(0+3, 3+0, 2+1, 1+2) 4가지...&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을 3가지 숫자로 만드는 방법은 (0+0+1, 0+1+0, 1+0+0) 3가지..&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2를 3가지 숫자로 만드는 방법을 생각해보자&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0+0+2 -&amp;gt; 2를 3번 옮겨서 만들 수 있으므로 3가지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0+1+1 -&amp;gt; 0을 옮겨가면서 다른 숫자로 인식할 수 있으므로 3가지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;총 6가지가 된다&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을 3가지 숫자로 만들어보자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0+0+3, 0+3+0, 3+0+0&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0+1+2, 1+2+0, 2+0+1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0+2+1, 1+0+2, 2+1+0&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1+1+1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;총 10가지&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;2보다 큰 수에서는 lst[i-1][j] + lst[i][j-1]으로 대각의 합이 다음 수이다&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 90px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;2&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;3&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;4&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;5&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;6&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;2&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;2&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;3&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;4&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;5&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;6&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;7&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;3&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;3&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;6&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;10&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;15&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;21&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;28&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;36&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;4&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;4&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;10&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;20&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;35&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;56&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;84&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 18px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 12.5%;&quot;&gt;5&lt;/td&gt;
&lt;td style=&quot;width: 12.5%;&quot;&gt;5&lt;/td&gt;
&lt;td style=&quot;width: 12.5%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 12.5%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 12.5%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 12.5%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 12.5%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 12.5%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 12.5%;&quot;&gt;6&lt;/td&gt;
&lt;td style=&quot;width: 12.5%;&quot;&gt;6&lt;/td&gt;
&lt;td style=&quot;width: 12.5%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 12.5%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 12.5%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 12.5%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 12.5%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 12.5%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;pre id=&quot;code_1679318818090&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;n, k = map(int, input().split())

lst = [ [0] * 201 for _ in range(201)]

for i in range(0, 201):
    lst[1][i] = 1
    
for i in range(0, 201):
    lst[i][1] = i

for i in range(2, 201):
    for j in range(2, 201):
        lst[i][j] = lst[i][j-1] + lst[i-1][j]
print(lst[k][n] % 1000000000)&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Programming/BackJoon</category>
      <category>2225</category>
      <category>합분해</category>
      <author>홍열</author>
      <guid isPermaLink="true">https://hongprogrammer.tistory.com/204</guid>
      <comments>https://hongprogrammer.tistory.com/204#entry204comment</comments>
      <pubDate>Mon, 20 Mar 2023 14:07:49 +0900</pubDate>
    </item>
    <item>
      <title>1699 - 제곱수의 합</title>
      <link>https://hongprogrammer.tistory.com/203</link>
      <description>&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;a href=&quot;https://www.acmicpc.net/problem/1699&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.acmicpc.net/problem/1699&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1679016516160&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;1699번: 제곱수의 합&quot; data-og-description=&quot;어떤 자연수 N은 그보다 작거나 같은&amp;nbsp;제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/1699&quot; data-og-url=&quot;https://www.acmicpc.net/problem/1699&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cduJqS/hyRWnW3Lnq/3xguidQP8hbnq1NK7zm5G1/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/1699&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/1699&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cduJqS/hyRWnW3Lnq/3xguidQP8hbnq1NK7zm5G1/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;1699번: 제곱수의 합&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;어떤 자연수 N은 그보다 작거나 같은&amp;nbsp;제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다&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;2) 문제 설명&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떤 자연수를 제곱수로 나타낼 수 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex ) 11 = 3^2 + 1^2 + 1^2&amp;nbsp; &amp;nbsp; -&amp;gt; 3개로 가능&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) 문제 풀이&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에는 받은 수 n 의 sqrt를 구해서 해볼 생각이었다. (수학 + 구현 문제인줄..)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어서 11이면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;int(math.sqrt(11)) = 3&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;11 - 3^2 = 2&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;int(math.sqrt(2)) = 1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2 - 1^2 = 1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;int(math.sqrt(2)) = 1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2 - 1^2 = 1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 해서 3번이 나온다&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;827&quot; data-origin-height=&quot;77&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dFExF1/btr4ki3t7xT/fRjrBInRKK2PkmIn6N8no1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dFExF1/btr4ki3t7xT/fRjrBInRKK2PkmIn6N8no1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dFExF1/btr4ki3t7xT/fRjrBInRKK2PkmIn6N8no1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdFExF1%2Fbtr4ki3t7xT%2FfRjrBInRKK2PkmIn6N8no1%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;827&quot; height=&quot;77&quot; data-origin-width=&quot;827&quot; data-origin-height=&quot;77&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;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;pre id=&quot;code_1679016908026&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import math
n = int(input())

cnt = 0
while n &amp;gt; 0:
    num = int(math.sqrt(n))
    n -= num ** 2
    cnt += 1
print(cnt)&lt;/code&gt;&lt;/pre&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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DP로 풀어봐야겠다&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;1 = 1^2&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2 = 1^2 + 1^2&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3 = 1^2 + 1^2 + 1^2&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;4 = 2^2&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5 = 2^2 + 1^2&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;6 = 2^2 +&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;1^2 + 1^2&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;7 = 2^2 +&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;1^2 +&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;1^2 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;+&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;1^2&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;8 = 2^2 +&lt;span&gt; 2^2&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323; text-align: start;&quot;&gt;9 = 3^2&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;10 = 3^2 + 1^2&lt;/span&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;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;즉 제곱수가 나눠져 떨어지는 구간..1, 4, 9, 16에서 제곱수 값이 갱신되고&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;4 와 9 사이에는 1이 반복되는걸 볼 수 있다&lt;/span&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;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;이걸 점화식화하면&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;dp[i] = min(dp[i], dp[i - j**2] + 1)이다&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;+1을 하는 이유는 자기 자신을 포함해야기때문이다&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;sqrt를 사용해서 빈도수를 줄일 수 있다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1679018477751&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import math
n = int(input())

dp = [x for x in range(n+1)]

for i in range(1, n+1):
    for j in range(1, int(math.sqrt(i)+1)):
        dp[i] = min(dp[i], dp[i - (j**2)]+1)
print(dp[n])&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;824&quot; data-origin-height=&quot;77&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KYStw/btr4hRepx6N/PC0WTrlghWzxyXkksgwna1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KYStw/btr4hRepx6N/PC0WTrlghWzxyXkksgwna1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KYStw/btr4hRepx6N/PC0WTrlghWzxyXkksgwna1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKYStw%2Fbtr4hRepx6N%2FPC0WTrlghWzxyXkksgwna1%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;824&quot; height=&quot;77&quot; data-origin-width=&quot;824&quot; data-origin-height=&quot;77&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Programming/BackJoon</category>
      <category>1699</category>
      <category>backjoon</category>
      <category>제곱수의 합</category>
      <author>홍열</author>
      <guid isPermaLink="true">https://hongprogrammer.tistory.com/203</guid>
      <comments>https://hongprogrammer.tistory.com/203#entry203comment</comments>
      <pubDate>Fri, 17 Mar 2023 10:35:12 +0900</pubDate>
    </item>
  </channel>
</rss>