<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>알고리즘 코딩테스트 on Sobamemil</title>
    <link>https://blog.sobamemil.com/categories/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8/</link>
    <description>Recent content in 알고리즘 코딩테스트 on Sobamemil</description>
    <image>
      <title>Sobamemil</title>
      <url>https://blog.sobamemil.com/images/og-image.png</url>
      <link>https://blog.sobamemil.com/images/og-image.png</link>
    </image>
    <generator>Hugo</generator>
    <language>ko</language>
    <lastBuildDate>Thu, 29 Jun 2023 20:59:21 +0900</lastBuildDate>
    <atom:link href="https://blog.sobamemil.com/categories/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>[Swift] 홀짝 구분하기 / LV.0, 181944, 프로그래머스</title>
      <link>https://blog.sobamemil.com/posts/194-swift-%ED%99%80%EC%A7%9D-%EA%B5%AC%EB%B6%84%ED%95%98%EA%B8%B0-lv0-181944-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/</link>
      <pubDate>Thu, 29 Jun 2023 20:59:21 +0900</pubDate>
      <guid>https://blog.sobamemil.com/posts/194-swift-%ED%99%80%EC%A7%9D-%EA%B5%AC%EB%B6%84%ED%95%98%EA%B8%B0-lv0-181944-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/</guid>
      <description>&lt;p&gt;&lt;strong&gt;문제:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;자연수 n이 입력으로 주어졌을 때 만약 n이 짝수이면 &amp;quot;n is even&amp;quot;을, 홀수이면 &amp;quot;n is odd&amp;quot;를 출력하는 코드를 작성해 보세요.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://school.programmers.co.kr/learn/courses/30/lessons/181944&#34;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/181944&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[프로그래머스&lt;/p&gt;
&lt;p&gt;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&lt;/p&gt;
&lt;p&gt;programmers.co.kr](&lt;a href=&#34;https://school.programmers.co.kr/learn/courses/30/lessons/181944&#34;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/181944&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;제한사항:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 ≤ n ≤ 1,000&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;풀이:&lt;/b&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;let a &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; Int(readLine()&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;)&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;let resultString &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; a &lt;span style=&#34;color:#f92672&#34;&gt;%&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;?&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;\(a) is even&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;\(a) is odd&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(resultString)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ternary operator(삼항 연산자) 사용해서 문제를 해결 하였습니다.  입련된 수를 2로 나눈 나머지가 0인지 확인하여 짝수인지 확인할 수 있습니다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Swift] 문자열 돌리기 / LV.0, 181945, 프로그래머스</title>
      <link>https://blog.sobamemil.com/posts/193-swift-%EB%AC%B8%EC%9E%90%EC%97%B4-%EB%8F%8C%EB%A6%AC%EA%B8%B0-lv0-181945-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/</link>
      <pubDate>Thu, 22 Jun 2023 22:09:43 +0900</pubDate>
      <guid>https://blog.sobamemil.com/posts/193-swift-%EB%AC%B8%EC%9E%90%EC%97%B4-%EB%8F%8C%EB%A6%AC%EA%B8%B0-lv0-181945-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/</guid>
      <description>&lt;p&gt;&lt;strong&gt;문제:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;문자열 str이 주어집니다.&lt;/p&gt;
&lt;p&gt;문자열을 시계방향으로 90도 돌려서 아래 입출력 예와 같이 출력하는 코드를 작성해 보세요.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://school.programmers.co.kr/learn/courses/30/lessons/181945&#34;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/181945&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[프로그래머스&lt;/p&gt;
&lt;p&gt;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&lt;/p&gt;
&lt;p&gt;programmers.co.kr](&lt;a href=&#34;https://school.programmers.co.kr/learn/courses/30/lessons/181945&#34;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/181945&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;제한사항:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 ≤ str의 길이 ≤ 10&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;풀이:&lt;/b&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;readLine()&lt;span style=&#34;color:#f92672&#34;&gt;?&lt;/span&gt;.forEach { print(&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;) }
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;가로로 제시된 문자열을 세로로 하나씩 출력하면 되는 문제입니다.&lt;/p&gt;
&lt;p&gt;문자열을 하나하나 순회하며 출력해주면 됩니다.&lt;/p&gt;
&lt;p&gt;저는 forEach 문법을 사용해서 문자열을 하나씩 출력해 주었습니다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Swift] 문자열 붙여서 출력하기 / LV.0, 181946, 프로그래머스</title>
      <link>https://blog.sobamemil.com/posts/192-swift-%EB%AC%B8%EC%9E%90%EC%97%B4-%EB%B6%99%EC%97%AC%EC%84%9C-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0-lv0-181946-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/</link>
      <pubDate>Tue, 20 Jun 2023 20:51:27 +0900</pubDate>
      <guid>https://blog.sobamemil.com/posts/192-swift-%EB%AC%B8%EC%9E%90%EC%97%B4-%EB%B6%99%EC%97%AC%EC%84%9C-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0-lv0-181946-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/</guid>
      <description>&lt;p&gt;&lt;strong&gt;문제:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;두 개의 문자열 str1, str2가 공백으로 구분되어 입력으로 주어집니다.&lt;br&gt;
입출력 예와 같이 str1과 str2을 이어서 출력하는 코드를 작성해 보세요.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;a href=&#34;https://school.programmers.co.kr/learn/courses/30/lessons/181946&#34;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/181946&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;[프로그래머스&lt;/p&gt;
&lt;p&gt;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&lt;/p&gt;
&lt;p&gt;programmers.co.kr](&lt;a href=&#34;https://school.programmers.co.kr/learn/courses/30/lessons/181946&#34;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/181946&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;제한사항:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 ≤ str1, str2의 길이 ≤ 10&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;풀이:&lt;/b&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(readLine()&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;.components(separatedBy: [&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;]).joined().replacingOccurrences(of: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;, with: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;두 문자열 사이의 공백을 제거하고 출력하면 되는 문제입니다. 방법은 아주 많겠지만 한 줄로 해결해 보았습니다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Swift] 덧셈식 출력하기 / LV.0, 181947, 프로그래머스</title>
      <link>https://blog.sobamemil.com/posts/191-swift-%EB%8D%A7%EC%85%88%EC%8B%9D-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0-lv0-181947-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/</link>
      <pubDate>Tue, 20 Jun 2023 20:38:55 +0900</pubDate>
      <guid>https://blog.sobamemil.com/posts/191-swift-%EB%8D%A7%EC%85%88%EC%8B%9D-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0-lv0-181947-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/</guid>
      <description>&lt;p&gt;&lt;strong&gt;문제:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;두 정수 a, b가 주어질 때 다음과 같은 형태의 계산식을 출력하는 코드를 작성해 보세요.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;a &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; b &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;https://school.programmers.co.kr/learn/courses/30/lessons/181947&#34;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/181947&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[프로그래머스&lt;/p&gt;
&lt;p&gt;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&lt;/p&gt;
&lt;p&gt;programmers.co.kr](&lt;a href=&#34;https://school.programmers.co.kr/learn/courses/30/lessons/181947&#34;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/181947&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;제한사항:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 ≤ a, b ≤ 100&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;풀이:&lt;/b&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;let n &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; readLine()&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;.components(separatedBy: [&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;]).map { Int(&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;)&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;let (a, b) &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; (n[&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;], n[&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;])
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;let result &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; a &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; b
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;\(a) + \(b) = \(result)&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// 또는 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// print(a, &amp;#34;+&amp;#34;, b, &amp;#34;=&amp;#34;, a + b)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;문자열을 포맷에 맞춰 출력하는 문제입니다. 문자열에 직접 ()을 사용해서 변수를 출력할 수도 있고, 아래 주석처럼 콤마(,)로 나눠서 출력할 수도 있습니다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Swift] 특수문자 출력하기 / LV.0, 181948, 프로그래머스</title>
      <link>https://blog.sobamemil.com/posts/190-swift-%ED%8A%B9%EC%88%98%EB%AC%B8%EC%9E%90-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0-lv0-181948-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/</link>
      <pubDate>Mon, 19 Jun 2023 21:50:48 +0900</pubDate>
      <guid>https://blog.sobamemil.com/posts/190-swift-%ED%8A%B9%EC%88%98%EB%AC%B8%EC%9E%90-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0-lv0-181948-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/</guid>
      <description>&lt;p&gt;&lt;strong&gt;문제:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;다음과 같이 출력하도록 코드를 작성해 주세요.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;@#$&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;%^&amp;amp;*&lt;/span&gt;(&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;lt;&amp;gt;?:;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;https://school.programmers.co.kr/learn/courses/30/lessons/181948&#34;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/181948&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[프로그래머스&lt;/p&gt;
&lt;p&gt;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&lt;/p&gt;
&lt;p&gt;programmers.co.kr](&lt;a href=&#34;https://school.programmers.co.kr/learn/courses/30/lessons/181948&#34;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/181948&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;풀이:&lt;/b&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;#&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;!@#$%^&amp;amp;*(&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;gt;?:&lt;/span&gt;;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;#)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// 또는
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// print(&amp;#34;!@#$%^&amp;amp;*(\\&amp;#39;\&amp;#34;&amp;lt;&amp;gt;?:;&amp;#34;)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;swift에서는 특수문자를 출력하는 데 여러 방법이 있습니다.&lt;/p&gt;
&lt;p&gt;그 중 문자열 앞 뒤로 # 을 사용하면 특수문자를 그대로 출력합니다.&lt;/p&gt;
&lt;p&gt;또는 아래 주석처럼 \ 이나 &amp;quot; 처럼 이미 키워드로 사용하고 있는 특수문자들은 앞에 \ 를 하나 붙여주면 특수문자가 문자열 그대로 출력됩니다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Swift] 대소문자 바꿔서 출력하기 / LV.0, 181949, 프로그래머스</title>
      <link>https://blog.sobamemil.com/posts/189-swift-%EB%8C%80%EC%86%8C%EB%AC%B8%EC%9E%90-%EB%B0%94%EA%BF%94%EC%84%9C-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0-lv0-181949-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/</link>
      <pubDate>Mon, 19 Jun 2023 21:45:07 +0900</pubDate>
      <guid>https://blog.sobamemil.com/posts/189-swift-%EB%8C%80%EC%86%8C%EB%AC%B8%EC%9E%90-%EB%B0%94%EA%BF%94%EC%84%9C-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0-lv0-181949-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/</guid>
      <description>&lt;p&gt;&lt;strong&gt;문제:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;영어 알파벳으로 이루어진 문자열 str이 주어집니다.&lt;/p&gt;
&lt;p&gt;각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://school.programmers.co.kr/learn/courses/30/lessons/181949&#34;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/181949&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[프로그래머스&lt;/p&gt;
&lt;p&gt;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&lt;/p&gt;
&lt;p&gt;programmers.co.kr](&lt;a href=&#34;https://school.programmers.co.kr/learn/courses/30/lessons/181949&#34;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/181949&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;제한사항:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 ≤ str의 길이 ≤ 20
&lt;ul&gt;
&lt;li&gt;str은 알파벳으로 이루어진 문자열입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;풀이:&lt;/b&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;let line &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; readLine()&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;let resultString &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; line.map { character in
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; character.isLowercase {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; character.uppercased()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    } &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; character.lowercased()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}.joined()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(resultString)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// 또는
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// print(readLine()?.map { $0.isLowercase ? $0.uppercased() : $0.lowercased() }.joined() ?? &amp;#34;&amp;#34;)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;입력 받은 각 문자 하나하나가 대문자인지 소문자인지 판단해서 반대로 출력하면 되는 문제입니다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Swift] 문자열 반복해서 출력하기 / LV.0, 181950, 프로그래머스</title>
      <link>https://blog.sobamemil.com/posts/188-swift-%EB%AC%B8%EC%9E%90%EC%97%B4-%EB%B0%98%EB%B3%B5%ED%95%B4%EC%84%9C-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0-lv0-181950-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/</link>
      <pubDate>Mon, 19 Jun 2023 21:35:34 +0900</pubDate>
      <guid>https://blog.sobamemil.com/posts/188-swift-%EB%AC%B8%EC%9E%90%EC%97%B4-%EB%B0%98%EB%B3%B5%ED%95%B4%EC%84%9C-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0-lv0-181950-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/</guid>
      <description>&lt;p&gt;&lt;strong&gt;문제:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;문자열 str과 정수 n이 주어집니다.&lt;br&gt;
str이 n번 반복된 문자열을 만들어 출력하는 코드를 작성해 보세요.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://school.programmers.co.kr/learn/courses/30/lessons/181950&#34;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/181950&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[프로그래머스&lt;/p&gt;
&lt;p&gt;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&lt;/p&gt;
&lt;p&gt;programmers.co.kr](&lt;a href=&#34;https://school.programmers.co.kr/learn/courses/30/lessons/181950&#34;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/181950&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;제한사항:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 ≤ str의 길이 ≤ 10&lt;/li&gt;
&lt;li&gt;1 ≤ n ≤ 5&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;풀이:&lt;/b&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;let inp &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; readLine()&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;.components(separatedBy: [&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;]).map { &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;let (s1, a) &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; (inp[&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;], Int(inp[&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;])&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;let resultString: String &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    var string: String &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; _ in &lt;span style=&#34;color:#ae81ff&#34;&gt;0.&lt;/span&gt;.&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;a {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        string &lt;span style=&#34;color:#f92672&#34;&gt;+=&lt;/span&gt; s1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; string
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(resultString)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// 또는
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// let resultString = String(repeating: s1, count: a)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// print(resultString)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;문자열을 n 번 반복해서 이어 붙이면 되는 문제입니다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Swift] a와 b 출력하기 / LV.0, 181951, 프로그래머스</title>
      <link>https://blog.sobamemil.com/posts/187-swift-a%EC%99%80-b-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0-lv0-181951-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/</link>
      <pubDate>Sun, 18 Jun 2023 19:30:04 +0900</pubDate>
      <guid>https://blog.sobamemil.com/posts/187-swift-a%EC%99%80-b-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0-lv0-181951-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/</guid>
      <description>&lt;p&gt;&lt;strong&gt;문제:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;정수 a와 b가 주어집니다. 각 수를 입력받아 입출력 예와 같은 형식으로 출력하는 코드를 작성해 보세요.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://school.programmers.co.kr/learn/courses/30/lessons/181951&#34;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/181951&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[프로그래머스&lt;/p&gt;
&lt;p&gt;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&lt;/p&gt;
&lt;p&gt;programmers.co.kr](&lt;a href=&#34;https://school.programmers.co.kr/learn/courses/30/lessons/181951&#34;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/181951&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;제한사항:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-100,000 ≤ a, b ≤ 100,000&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;풀이:&lt;/b&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;let n &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; readLine()&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;.components(separatedBy: [&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;])
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;let (a, b) &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; (n[&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;], n[&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;])
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;a = \(a)&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;b = \(b)&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// 또는 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// print(&amp;#34;a =&amp;#34;, a)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// print(&amp;#34;b =&amp;#34;, b)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;두 가지의 정수를 공백 기준으로 나눈 후, 형식에 맞게 출력 해주면 되는 문제입니다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Swift] 문자열 출력하기 / LV.0, 181952, 프로그래머스</title>
      <link>https://blog.sobamemil.com/posts/186-swift-%EB%AC%B8%EC%9E%90%EC%97%B4-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0-lv0-181952-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/</link>
      <pubDate>Sun, 18 Jun 2023 19:18:46 +0900</pubDate>
      <guid>https://blog.sobamemil.com/posts/186-swift-%EB%AC%B8%EC%9E%90%EC%97%B4-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0-lv0-181952-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/</guid>
      <description>&lt;p&gt;&lt;strong&gt;문제:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;문자열 str이 주어질 때, str을 출력하는 코드를 작성해 보세요.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;a href=&#34;https://school.programmers.co.kr/learn/courses/30/lessons/181952&#34;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/181952&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;[프로그래머스&lt;/p&gt;
&lt;p&gt;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&lt;/p&gt;
&lt;p&gt;programmers.co.kr](&lt;a href=&#34;https://school.programmers.co.kr/learn/courses/30/lessons/181952&#34;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/181952&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;제한사항:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 ≤ str의 길이 ≤ 1,000,000&lt;/li&gt;
&lt;li&gt;str에는 공백이 없으며, 첫째 줄에 한 줄로만 주어집니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;풀이:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;입력 받은 문자열을 그대로 출력해주면 되는 문제입니다.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(readLine() &lt;span style=&#34;color:#f92672&#34;&gt;??&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;readLine 함수는 optional을 return 하므로 ?? 연산자(nil 병합 연산자 / coalescing operator)를 사용해 줍니다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>크러스컬 알고리즘 구현 2 (붕괴법칙을 적용한 방법)</title>
      <link>https://blog.sobamemil.com/posts/181-%ED%81%AC%EB%9F%AC%EC%8A%A4%EC%BB%AC-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B5%AC%ED%98%84-2-%EB%B6%95%EA%B4%B4%EB%B2%95%EC%B9%99%EC%9D%84-%EC%A0%81%EC%9A%A9%ED%95%9C-%EB%B0%A9%EB%B2%95/</link>
      <pubDate>Fri, 09 Apr 2021 23:36:05 +0900</pubDate>
      <guid>https://blog.sobamemil.com/posts/181-%ED%81%AC%EB%9F%AC%EC%8A%A4%EC%BB%AC-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B5%AC%ED%98%84-2-%EB%B6%95%EA%B4%B4%EB%B2%95%EC%B9%99%EC%9D%84-%EC%A0%81%EC%9A%A9%ED%95%9C-%EB%B0%A9%EB%B2%95/</guid>
      <description>&lt;p&gt;&lt;strong&gt;프로그램 개요 :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;C 언어를 사용한 크러스컬 알고리즘(Kruskal Algorithm) 구현.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;붕괴법칙을 적용하지 않은 크러스컬 알고리즘.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;붕괴법칙을 적용한 크러스컬 알고리즘&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;프로그램 구조 및 설계:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;이전 글과 이어지는 포스팅입니다. 프로그램의 구조와 설계 방법은 아래 링크에서 보실 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://sobamemil.tistory.com/180&#34;&gt;2021.04.09 - [알고리즘] - 크러스컬 알고리즘 구현 1 (붕괴법칙을 적용하지 않은 방법)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;참고로 아래 코드에서 붕괴법칙(collapsing rule)을 적용하여 문제를 해결하는 알고리즘이 있는데, 붕괴법칙이란 임의의 노드 i에 대해 find 연산을 한다고 하였을 때, 정상적으로 루트를 찾았다면 i부터 루트까지의 경로에 있는 모든 노드들을 그 루트의 자식으로 만드는 것을 말합니다. 즉, i에 대해 find 연산을 한 번 하였다면 그 이후부터는 i부터 루트까지의 경로에 있는 모든 노드들이 한 번에 자신의 루트를 찾을 수 있다는 뜻이 됩니다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>크러스컬 알고리즘 구현 1 (붕괴법칙을 적용하지 않은 방법)</title>
      <link>https://blog.sobamemil.com/posts/180-%ED%81%AC%EB%9F%AC%EC%8A%A4%EC%BB%AC-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B5%AC%ED%98%84-1-%EB%B6%95%EA%B4%B4%EB%B2%95%EC%B9%99%EC%9D%84-%EC%A0%81%EC%9A%A9%ED%95%98%EC%A7%80-%EC%95%8A%EC%9D%80-%EB%B0%A9%EB%B2%95/</link>
      <pubDate>Fri, 09 Apr 2021 23:28:25 +0900</pubDate>
      <guid>https://blog.sobamemil.com/posts/180-%ED%81%AC%EB%9F%AC%EC%8A%A4%EC%BB%AC-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B5%AC%ED%98%84-1-%EB%B6%95%EA%B4%B4%EB%B2%95%EC%B9%99%EC%9D%84-%EC%A0%81%EC%9A%A9%ED%95%98%EC%A7%80-%EC%95%8A%EC%9D%80-%EB%B0%A9%EB%B2%95/</guid>
      <description>&lt;p&gt;&lt;strong&gt;프로그램 개요 :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;C 언어를 사용한 크러스컬 알고리즘(Kruskal Algorithm) 구현.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;붕괴법칙을 적용하지 않은 크러스컬 알고리즘.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;붕괴법칙을 적용한 크러스컬 알고리즘&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;크러스컬 알고리즘에 대한 설명은 아래 링크의 이전 글에서 볼 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://sobamemil.tistory.com/150&#34;&gt;2020.07.02 - [알고리즘] - 크러스컬(Kruskal) 알고리즘&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;이 글에서는 예로 주어진 그래프에 대해서 크러스컬 알고리즘으로 문제를 해결하는 방법과 코드를 작성하였습니다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;입력 가중치 그래프 :&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://img.sobamemil.com/posts/180/img_1.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;입력 파일 :&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://img.sobamemil.com/posts/180/img_2.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;입력 데이터&lt;/p&gt;
&lt;p&gt;입력 데이터가 들어있는 .txt 파일입니다.&lt;/p&gt;
&lt;p&gt;[graphInf.txt&lt;/p&gt;
&lt;p&gt;0.00MB](&lt;a href=&#34;https://blog.kakaocdn.net/dna/9GWpl/btq2iFfdTGn/AAAAAAAAAAAAAAAAAAAAAPR1afPSYRSSngG_pTeKxCHZPt50vsapwyoi0hUqhYlq/graphInf.txt?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1788188399&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=tBqiAllXzExVIgPQgq2UUYjZeLk%3D&amp;amp;attach=1&amp;amp;knm=tfile.txt&#34;&gt;https://blog.kakaocdn.net/dna/9GWpl/btq2iFfdTGn/AAAAAAAAAAAAAAAAAAAAAPR1afPSYRSSngG_pTeKxCHZPt50vsapwyoi0hUqhYlq/graphInf.txt?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;expires=1788188399&amp;allow_ip=&amp;allow_referer=&amp;signature=tBqiAllXzExVIgPQgq2UUYjZeLk%3D&amp;attach=1&amp;knm=tfile.txt&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;프로그램 실행 결과 :&lt;/b&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>크러스컬(Kruskal) 알고리즘</title>
      <link>https://blog.sobamemil.com/posts/150-%ED%81%AC%EB%9F%AC%EC%8A%A4%EC%BB%ACkruskal-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98/</link>
      <pubDate>Thu, 02 Jul 2020 18:03:16 +0900</pubDate>
      <guid>https://blog.sobamemil.com/posts/150-%ED%81%AC%EB%9F%AC%EC%8A%A4%EC%BB%ACkruskal-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98/</guid>
      <description>&lt;p&gt;&lt;strong&gt;크러스컬(Kruskal) 알고리즘이란?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;크러스컬 알고리즘은 최소 비용 신장 그래프를 찾는 알고리즘 입니다.&lt;/p&gt;
&lt;p&gt;변의 개수를 E, 꼭지점의 개수를 V라고 한다면 크러스컬 알고리즘은 O(ElogV)의 시간 복잡도를 갖습니다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;크러스컬의 MST(욕심쟁이 방법) 알고리즘 간략 코드 :&lt;/b&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1  2  3  4  5  6  7  8  9  10  11  12  13  14  15&lt;/td&gt;
          &lt;td&gt;edge_set kruskal_MST(edge_set E, int n) {  sort(E); // 간선 정렬  edge_set MST_E = { };  for (i=0; i&amp;lt;n; i++) init_set(i); // n개의 집합(트리)을 생성  while(MST_E의 간선 수 &amp;lt; n - 1) {  (u, v) = E의 최소 가중치 간선;  E = E - {(u, v)};  if(find(u) != find(v)) // u와 v가 다른 집합(트리) 원소  {  MST_E = MST_E ∪ {(u, v)}; // 간선 추가  union(u, v); // 두 집합(트리)을 합병  }  }  return MST_E;  }&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;b&gt;- 예제 -&lt;/b&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>이원 탐색 트리(Binary Search Tree) 배열 만들기</title>
      <link>https://blog.sobamemil.com/posts/131-%EC%9D%B4%EC%9B%90-%ED%83%90%EC%83%89-%ED%8A%B8%EB%A6%ACbinary-search-tree-%EB%B0%B0%EC%97%B4-%EB%A7%8C%EB%93%A4%EA%B8%B0/</link>
      <pubDate>Thu, 19 Mar 2020 15:06:28 +0900</pubDate>
      <guid>https://blog.sobamemil.com/posts/131-%EC%9D%B4%EC%9B%90-%ED%83%90%EC%83%89-%ED%8A%B8%EB%A6%ACbinary-search-tree-%EB%B0%B0%EC%97%B4-%EB%A7%8C%EB%93%A4%EA%B8%B0/</guid>
      <description>&lt;p&gt;&lt;strong&gt;문제 :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;배열을 이용하여 이원 탐색 트리를 만들고 탐색하는 프로그램을 작성하라.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;입력 : 정렬이 되지 않은 숫자들&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;프로그램 :&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;  2.1 입력된 숫자들을 하나씩 읽으면서 이원 탐색 트리 배열 만들기&lt;/p&gt;
&lt;p&gt;  2.2 숫자 하나를 입력하면 이원탐색트리 알고리즘을 적용하여 해당하는 배열의 첨자를 출력하기&lt;/p&gt;
&lt;p&gt;         (이 때 출력은 배열 원소들을 차례대로 출력하고 해당하는 배열 첨자를 출력)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;실행 결과 :&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://img.sobamemil.com/posts/131/img_1.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;코드 :&lt;/b&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78&lt;/td&gt;
          &lt;td&gt;#include&lt;iostream&gt;  using namespace std;    void newBinarySearchTree(int *num_arr, int size, int *new_num_arr) {    for(int i=0; i&amp;lt;size+20; i++){ // 이원탐색트리 배열 -1로 초기화  new_num_arr[i] = -1;  }  new_num_arr[0] = num_arr[0];    for(int i=1; i&amp;lt;size; i++){  int index=0;  // 새로 들어올 숫자가 이원탐색트리 배열의 루트보다 작으면 왼쪽으로 이동  if(new_num_arr[0] &amp;gt; num_arr[i]) {  for(int j=2*index+1;;) {  if(new_num_arr[j] != -1){ //삽입하려는 이원탐색트리 배열공간이 NULL이 아니면 비교  if(new_num_arr[j] &amp;lt; num_arr[i]) j=2*j+2; //  삽입하고자 하는 숫자가 더 크면 2j+2  else if(new_num_arr[j] &amp;gt; num_arr[i]) j=2*j+1; // 삽입하고자 하는 숫자가 더 작으면 2j+1  z  else {  //같은 숫자가 나오면 오류메시지 출력 후 프로그램 비정상 종료  cout &amp;lt;&amp;lt; &amp;quot;same data error...\n&amp;quot;; exit(1);  }  }  else if(new_num_arr[j] == -1) { // 삽입하려는 이원탐색트리 배열 공간이 NULL이면 바로 삽입  new_num_arr[j] = num_arr[i];  break;  }  }  }  // 새로 들어올 숫자가 이원탐색트리 배열의 루트보다 크면 오른쪽으로 이동  else if(new_num_arr[0] &amp;lt; num_arr[i]) {  for(int j=2*index+2;;) {  if(new_num_arr[j] != -1){ // 삽입하려는 이원탐색트리 배열공간이 NULL이 아니면 비교  if(new_num_arr[j] &amp;lt; num_arr[i]) j=2*j+2;  else if(new_num_arr[j] &amp;gt; num_arr[i]) j=2*j+1;  else {  cout &amp;lt;&amp;lt; &amp;quot;same data error...\n&amp;quot;; exit(1);  }  }  else if(new_num_arr[j] == -1) {  new_num_arr[j] = num_arr[i];  break;  }  }  }  else continue;  }  }    void find(int *new_num_arr, int size) {  int x, flag;  cout &amp;lt;&amp;lt; &amp;quot;찾고자 하는 숫자 입력 : &amp;quot;;  cin &amp;gt;&amp;gt;  x;    for(int i=0; i&amp;lt;size; i++) // 이원탐색트리 배열의 모든 원소 출력  cout &amp;lt;&amp;lt; &amp;quot;arr[&amp;quot; &amp;lt;&amp;lt; i &amp;lt;&amp;lt; &amp;quot;] : &amp;quot; &amp;lt;&amp;lt; new_num_arr[i] &amp;lt;&amp;lt; endl;    for(int i=0; i&amp;lt;size; i++){  if(new_num_arr[i] == x) {  cout &amp;lt;&amp;lt; &amp;quot;index : &amp;quot; &amp;lt;&amp;lt; i;  flag = true;  break;  }  else  flag = false;  }  if(!flag) // flag가 false이면 찾고자 하는 숫자가 없다고 출력  cout &amp;lt;&amp;lt; &amp;quot;찾고자 하는 숫자 없음\n&amp;quot;;  }    int main() {  int num_arr[] = {50, 40, 55, 30, 45, 54, 53, 1, 60, 301, 2};  int num_arr_size = sizeof(num_arr)/sizeof(num_arr[0]);  int *new_num_arr = new int [num_arr_size + 20]; // 이원탐색트리 배열 공간 생성    newBinarySearchTree(num_arr, num_arr_size, new_num_arr);  find(new_num_arr, num_arr_size + 20);  }&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;b&gt;설명 :&lt;/b&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
