<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>기초부터 시작하는 코딩 일기</title>
    <link>https://praybe.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Sat, 8 Aug 2026 11:44:39 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>praybe</managingEditor>
    <image>
      <title>기초부터 시작하는 코딩 일기</title>
      <url>https://tistory1.daumcdn.net/tistory/4991375/attach/90cba69965bb44f5bbb4c18900251fe1</url>
      <link>https://praybe.tistory.com</link>
    </image>
    <item>
      <title>파이썬 dict 딕셔너리</title>
      <link>https://praybe.tistory.com/251</link>
      <description>&lt;pre id=&quot;code_1652750278043&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{'a': 1, 'b': 2 }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-- 딕셔너리 특징&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 데이터 타입: 자료형&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Python의 key와 value로 매칭&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 순서 상관없이 key를 이용해서 바로 value에 접근&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. immutable(불변)이라 list,set(mutable)은 key가 될 수 없음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. key 중복이 안되어서 key가 중복되는 경우 앞의 key 값이 뒤에 입력한 값으로 변경 됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. value에는 숫자, 문자, tuple, list, dict 등 섞어서 사용 가능&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. print 메서드를 사용해서 딕셔너리 조회 가능. 그러나 구조가 복잡하면 알기 어려움&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;1. dict 함수&lt;/p&gt;
&lt;pre id=&quot;code_1652750617607&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;d = dict(a=1, b=2, c=3)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 중괄호 { }&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1652750635925&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{'a'=1, 'b'=2, 'c'=3}&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;-- 딕셔너리 활용&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;update()메서드 또는 dict()메서드 활용&lt;/p&gt;
&lt;pre id=&quot;code_1652751375565&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;'''
update()메서드 
'''

d1 = {'a':1, 'b':2}
d2 = {'b':1, 'c':2}

d1.update(d2)

print(d1)

#결과
# {'a':1, 'b':1, 'c':2}&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1652751380480&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;'''
dict()메서드 
'''
d1 = {'a':1, 'b':2}
d2 = dict(c=3, b=4)
d3 = dict(d1, **d2) # ** 는 여러 개의키워드 인수를 받을 때 dict형태로 표시

print(d3)

#결과
# {'a':1, 'b':4, 'c':3}&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;2. 특정값 찾기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;key를 이용. list와 달리 index 지원은 안함&lt;/p&gt;
&lt;pre id=&quot;code_1652752771156&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;d = {'a':1, 'b':2}
d['a']

#결과
# 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;3. 추가하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;새로운 key값 할당&lt;/p&gt;
&lt;pre id=&quot;code_1652752803136&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;d = {'a':1, 'b':2}
d['c'] = 4&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;4. 값 변경&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 key값을 다시 입력&lt;/p&gt;
&lt;pre id=&quot;code_1652752920116&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;d = {'a':1, 'b':2}
d['a'] = 3&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;5. dict(딕셔너리) key 값 얻기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;딕셔너리의 key값들만 추출하려면&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt; keys( ) &lt;/b&gt;&lt;/span&gt;메서드 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추출된 data는 dict_keys라는 자료형으로 저장&lt;/p&gt;
&lt;pre id=&quot;code_1652754438027&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;d = {'a':1, 'b':2}
d.keys()

#결과
# dict_keys(['a', 'b'])&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;6. dict value 값 얻기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;딕셔너리의 값만 추출하려면 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;values( )&lt;/b&gt;&lt;/span&gt; 메서드를 사용&lt;/p&gt;
&lt;pre id=&quot;code_1652754574095&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;d = {'a':1, 'b':2}
d.values()

#결과
# dict_values([1, 2])&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;7. dict key로 value 값 얻기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;get( )&lt;/b&gt; &lt;/span&gt;메서드에 key를 넣으면 value에 접근&lt;/p&gt;
&lt;pre id=&quot;code_1652756312385&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;d = {'a':1, 'b':2}

# key가 있을 경우
test1 = d.get('a')
print(f'd.get('a') : {test1}')

#결과
# d.get('a') : 1

# key가 없을 경우
test2 = d.get('c')
print(f'd.get('c') : {test2}')

#결과
# d.get('c') : None&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;8. 모든 dict key, value 값을 합쳐서 반환. tuple형태&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;dict.&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;items( )&lt;/b&gt;&lt;/span&gt; 메서드 사용.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;tuple은 List와 유사한 읽기만 가능한 자료형.&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;pre id=&quot;code_1652754580791&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;d = {'a':1, 'b':2}
d.items()

#결과
# dict_values([('a', 1), ('b', 2)])&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;9. 특정 key값 삭제&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;del( )&lt;/b&gt; &lt;/span&gt;메서드를 사용하여 특정 key 값 삭제&lt;/p&gt;
&lt;pre id=&quot;code_1652754787963&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;d = {'a':1, 'b':2}
del(d['a'])&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;pop( )&lt;/b&gt;&lt;/span&gt; 메서드도 가능한데 삭제와 동시에 삭제된 값을 반환해준다. 즉 무엇을 삭제했는지 알 수 있음&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1652754921941&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;d = {'a':1, 'b':2}
d.pop('a')

#결과값
# 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;p data-ke-size=&quot;size16&quot;&gt;10. 모두 삭제&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;딕셔너리의 모든 key와 value 값을 삭제하려면 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;clear( )&lt;/b&gt; &lt;/span&gt;메서드를 사용&lt;/p&gt;
&lt;pre id=&quot;code_1652754810720&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;d = {'a':1, 'b':2}
d.clear()&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;&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Python</category>
      <author>praybe</author>
      <guid isPermaLink="true">https://praybe.tistory.com/251</guid>
      <comments>https://praybe.tistory.com/251#entry251comment</comments>
      <pubDate>Tue, 17 May 2022 10:18:05 +0900</pubDate>
    </item>
    <item>
      <title>[Softeer] 이미지 프로세싱 ★★☆- 21년 재직자 대회 예선</title>
      <link>https://praybe.tistory.com/230</link>
      <description>&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;제한시간 : C/C++/Java/JS/Python(2초)| 메모리 제한 : 1024MB
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;자율주행 자동차를 구현하는 데에 있어서 이미지 프로세싱은 아주 중요한 요소이다. 카메라를 통해 들어온 차량 전후의 모습을 파악해 차량 근처에 있는 장애물들을 빠른 속도로 파악하고, 이를 다른 센서로부터 들어온 데이터와 함께 분석해 차량에게 올바른 명령을 내려야 하기 때문이다. 이 문제에서는 간단한 이미지 프로세싱을 하고자 한다.&lt;br /&gt;&lt;br /&gt;H&amp;times;W 크기의 2차원 비트맵 이미지가 있다. 이 이미지는 H&amp;times;W개의 픽셀들로 구성되어 있으며, 위에서부터 i (1&amp;le;i&amp;le;H)번째에 있고 왼쪽에서부터 j (1&amp;le;j&amp;le;W)번째에 있는 픽셀은 (i,j)로 표기할 수 있다. 각 픽셀에는 색상이 붙어 있으며, 이 색상은 1 이상 109&lt;span&gt;&amp;nbsp;&lt;/span&gt;이하의 정수로 표기할 수 있다. 픽셀 (i,j)의 색을 Ci,j라고 하자.&lt;br /&gt;&lt;br /&gt;이 이미지에 아래와 같은 연산을 Q번 수행할 것이다:&lt;br /&gt;(i,j,c): 픽셀 (i,j)를 고른다. 이 픽셀과 색깔이 같으면서 가로세로로 연결되어 있는 모든 픽셀들을 선택한 뒤, 그 픽셀들의 색을 모두 c로 바꾼다.&lt;br /&gt;&lt;br /&gt;예를 들어 아래와 같은 이미지가 있다고 하자.&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;724&quot; data-origin-height=&quot;566&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bkm11W/btrCakoxagq/7nNwkKCIoSRwJsecohrPp0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bkm11W/btrCakoxagq/7nNwkKCIoSRwJsecohrPp0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bkm11W/btrCakoxagq/7nNwkKCIoSRwJsecohrPp0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbkm11W%2FbtrCakoxagq%2F7nNwkKCIoSRwJsecohrPp0%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;724&quot; height=&quot;566&quot; data-origin-width=&quot;724&quot; data-origin-height=&quot;566&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;&lt;br /&gt;이 상황에서 (3,5,3) 연산을 수행해 보자. (3,5) 픽셀은 아래와 같다.&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;730&quot; data-origin-height=&quot;568&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/URykm/btrCfndwUtQ/LVkrHsf0kU4wu9KyKyJ8xk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/URykm/btrCfndwUtQ/LVkrHsf0kU4wu9KyKyJ8xk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/URykm/btrCfndwUtQ/LVkrHsf0kU4wu9KyKyJ8xk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FURykm%2FbtrCfndwUtQ%2FLVkrHsf0kU4wu9KyKyJ8xk%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;730&quot; height=&quot;568&quot; data-origin-width=&quot;730&quot; data-origin-height=&quot;568&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;&lt;br /&gt;이 픽셀의 색은 4이므로, 색이 4이면서 (3,5)와 가로세로로 연결되어 있는 픽셀들을 선택하면 아래와 같다.&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;726&quot; data-origin-height=&quot;568&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d4lLd6/btrCfnkjlyY/mL78dgYrskodZulVhs2GK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d4lLd6/btrCfnkjlyY/mL78dgYrskodZulVhs2GK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d4lLd6/btrCfnkjlyY/mL78dgYrskodZulVhs2GK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd4lLd6%2FbtrCfnkjlyY%2FmL78dgYrskodZulVhs2GK1%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;726&quot; height=&quot;568&quot; data-origin-width=&quot;726&quot; data-origin-height=&quot;568&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;&lt;br /&gt;이 픽셀들의 색을 모두 3으로 바꾸면 된다.&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;732&quot; data-origin-height=&quot;574&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRpG9c/btrCcEtisY4/euTkhH7T9jXkBWxcNp7kek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRpG9c/btrCcEtisY4/euTkhH7T9jXkBWxcNp7kek/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRpG9c/btrCcEtisY4/euTkhH7T9jXkBWxcNp7kek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRpG9c%2FbtrCcEtisY4%2FeuTkhH7T9jXkBWxcNp7kek%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;732&quot; height=&quot;574&quot; data-origin-width=&quot;732&quot; data-origin-height=&quot;574&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;&lt;br /&gt;다음 연산을 수행한다면 위와 같이 이미지가 변경된 상태에서 반복적으로 수행할 것이다. 모든 연산을 수행한 뒤의 이미지를 출력하는 프로그램을 작성하라.&lt;/div&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1&amp;le;H&amp;le;128&amp;nbsp;&lt;/li&gt;
&lt;li&gt;1&amp;le;W&amp;le;128&amp;nbsp;&lt;/li&gt;
&lt;li&gt;모든 i, j (1&amp;le;i&amp;le;H, 1&amp;le;j&amp;le;W) 에 대해: 1&amp;le;Ci,j&amp;le;109&amp;nbsp;&lt;/li&gt;
&lt;li&gt;1&amp;le;Q&amp;le;500&amp;nbsp;&lt;/li&gt;
&lt;li&gt;각 연산 (i,j,c)에 대해: 1&amp;le;i&amp;le;H, 1&amp;le;j&amp;le;W, 1&amp;le;c&amp;le;109&amp;nbsp;&lt;/li&gt;
&lt;li&gt;주어지는 모든 수는 정수이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;(10점) H=1&amp;nbsp;&lt;/li&gt;
&lt;li&gt;(90점) 추가 제약 조건 없음&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;입력형식&lt;/div&gt;
&lt;div&gt;첫 번째 줄에 두 정수 H와 W가 공백 하나를 사이로 두고 주어진다.&lt;br /&gt;다음 H개의 줄에는 각 픽셀의 색상이 주어진다. 이 중 i (1&amp;le;i&amp;le;H)번째 줄의 j (1&amp;le;j&amp;le;W)번째 정수는 Ci,j이다.&lt;br /&gt;그 다음 줄에는 Q가 주어진다.&lt;br /&gt;다음 Q개의 줄에는 연산들이 순서대로 주어진다. 각 줄에는 세 개의 정수 i, j, c가 공백 하나를 사이로 두고 주어진다.&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;출력형식&lt;/div&gt;
&lt;div&gt;모든 연산을 완료한 후, 최종 이미지를 H개의 줄에 W개의 정수를 공백 하나씩을 사이로 두고 출력한다.&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;입력예제1&lt;/div&gt;
&lt;div&gt;1 9&lt;br /&gt;1 1 2 2 2 1 1 2 2&lt;br /&gt;2&lt;br /&gt;1 5 1&lt;br /&gt;1 5 2&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;출력예제1&lt;/div&gt;
&lt;div&gt;2 2 2 2 2 2 2 2 2&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;2차원 비트맵 이미지가 주어지고 입력으로 특정 위치와 색깔 번호가 들어옴&lt;/p&gt;
&lt;pre id=&quot;code_1652772716035&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;'''
재귀조건 해결하기
'''

import sys # ★★★
sys.setrecursionlimit(10**5) # ★★★

def color(x,y,c):
    oldc = image[x][y]
    image[x][y] = c
    if image[x-1][y] == oldc: 
        color(x-1,y,c) 
    if image[x+1][y] == oldc:
        color(x+1,y,c)
    if image[x][y-1] == oldc:
        color(x,y-1,c)
    if image[x][y+1] == oldc:
        color(x,y+1,c)
    return

h, w = map(int, input().split())
image = [[0]*(w+2)] 
for i in range(h):  
    temp = list(map(int, input().split())) 
    image.append([0]+temp+[0])
image.append([0]*(w+2)) 

# print(image) 1차 디버깅

q = int(input())
for i in range(q): 
    x,y,c = map(int, input().split())
    if image[x][y] != c: # ★★★
    color(x,y,c) # ★★★
  
# print(image) 2차 디버깅

for i in range(1, h+1):
    for j in range(1,w):
        print(image[i][j], end=' ') 
	print(image[i][w])&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_1652667763817&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;'''
파이썬에서 재귀는 1000 정도로 제약이 있는데 
문제에서 2^7  *  2^7 상태라 2^14은 1024인 2^10보다 크므로 아무튼 0점
'''

import sys #파이썬이 제한한 재귀조건 풀기 = recursion해제하기
sys.setrecursionlimit(10**5) #16000번 재귀하는 것을 10만 정도로 재귀 풀어줌. 10의 5승 


#컬러함수
# old color가 new color와 다르다는 것을 가정
# 혹시 같게되면 무한루프가 돌게 됨 
# 그러나 제약 조건에는 old와 new가 다르다는 조건이 없음
# 그래서 그 처리를 해야 오류가 안뜸. 그건 다음 번 코드에 추가
def color(x,y,c):
    #image[x][y] = c 여기서 이미 이미지컬러를 바꿨으니 
    #oldc라는 변수를 만들어서 image x, y를 저장
    oldc = image[x][y]
    #이미지 xy를 color로 바꾸는 것이 목적
    image[x][y] = c
    #이미지와 동일한 color도 바꿔줘 
    if image[x-1][y] == oldc: #x-1은 아래 가짜 index[0]으로 해결    
        color(x-1,y,c) #재귀적으로 다시 (x-1,y,c)
    #if x &amp;lt; h and image[x+1][y] == oldc:
    if image[x+1][y] == oldc:
        color(x+1,y,c)
    if image[x][y-1] == oldc: #x-1은 아래 가짜 index[0]으로 해결
        color(x,y-1,c)
    if image[x][y+1] == oldc:
        color(x,y+1,c)
    return

#비트맵의 height, weight
h, w = map(int, input().split())
#비트맵에 색상이 적혀있는데 그것을 image배열에 다 받는다
image = [[0]*(w+2)]  #첫번째 row 생성되고 0인 index가 아니라 1인 index를 사용하도록 준비.
#픽셀의 색상, 줄이 h개가 들어옴
for i in range(h):  
	#temp라는 배열에 받아서 append
	#문자열이라 split을 하고 다시 integer로 변환
	#map은 list가 아니므로 list로 바꿔줘야 temp에 들어가짐. temp는 값들이 적힌 list
    temp = list(map(int, input().split())) 
    image.append([0]+temp+[0]) #이미지 번호가 1번부터 시작하므로 앞에 [0]을 추가
image.append([0]*(w+2)) #네모 밖을 둘러싸는 테두리를 만든 것
# print(image) 1차 디버깅

#q개의 줄에 q를 받고 
q = int(input())
#q개 줄에 연산들이 순서대로 주어진다.
for i in range(q): 
    x,y,c = map(int, input().split())
    #처음에 부를 때 image xy의 컬러가 c라는 뉴컬러와 다를때만 recursion
    if image[x][y] != c: #처음만 체크 잘하면 됨, 새로운 컬러가 이전 것과 같은지 여부 체크
    color(x,y,c) #컬러함수를 만들어서 업데이트. 상단으로 고고

    
# print(image) 2차 디버깅

for i in range(1, h+1): #0인 index를 안 써서 h+1이라 써야함 
    for j in range(1,w):
        print(image[i][j], end=' ') #엔터대신에 공백넣어라
	print(image[i][w]) #맨 마지막은 엔터&lt;/code&gt;&lt;/pre&gt;</description>
      <category>coding practice/Softeer</category>
      <author>praybe</author>
      <guid isPermaLink="true">https://praybe.tistory.com/230</guid>
      <comments>https://praybe.tistory.com/230#entry230comment</comments>
      <pubDate>Mon, 16 May 2022 11:22:45 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 10817번 Python: 세 수</title>
      <link>https://praybe.tistory.com/217</link>
      <description>&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;세 정수 A, B, C가 주어진다. 이때, 두 번째로 큰 정수를 출력하는 프로그램을 작성하시오.&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;첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 &amp;le; A, B, C &amp;le; 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;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: #f89009;&quot;&gt;&lt;i&gt;&lt;b&gt;참고&lt;/b&gt;&lt;/i&gt;&lt;/span&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;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;기본 정렬&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;객체.sort()&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; &amp;nbsp;객체.sort(reverse=False)&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; &amp;nbsp;객체.sort(reverse=True)&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1652323785434&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;'''
리스트정렬 sort()
'''

n = list(map(int, input().split()))
#list 정렬
n.sort()
print(n[1]) #두번째 수&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;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;알고리즘 분류&lt;/h2&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/tag/102&quot;&gt;구현&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>coding practice/BOJ</category>
      <author>praybe</author>
      <guid isPermaLink="true">https://praybe.tistory.com/217</guid>
      <comments>https://praybe.tistory.com/217#entry217comment</comments>
      <pubDate>Thu, 12 May 2022 11:50:13 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 9498번 Python: 시험 성적</title>
      <link>https://praybe.tistory.com/216</link>
      <description>&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;시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.&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;첫째 줄에 시험 점수가 주어진다. 시험 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div id=&quot;problem_output&quot;&gt;
&lt;pre id=&quot;code_1652323284800&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;'''
방법 1 and (자바는 &amp;amp;&amp;amp;이고 파이썬은 and)
'''
score = int(input())

if score &amp;gt;=90 and score &amp;lt;=100 :
    print('A')
elif score &amp;gt;=80 :
    print('B')
elif score &amp;gt;= 70 :
    print('C')
elif score &amp;gt;=60 :
    print('D')
else :
    print('F')&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_1652323646519&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;'''
방법 2 간단히
'''
score = int(input())

if 100&amp;gt;= score &amp;gt;=90 :
    print('A')
elif score &amp;gt;=80 :
    print('B')
elif score &amp;gt;= 70 :
    print('C')
elif score &amp;gt;=60 :
    print('D')
else :
    print('F')&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;알고리즘 분류&lt;/h2&gt;
&lt;div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/tag/102&quot;&gt;구현&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>coding practice/BOJ</category>
      <author>praybe</author>
      <guid isPermaLink="true">https://praybe.tistory.com/216</guid>
      <comments>https://praybe.tistory.com/216#entry216comment</comments>
      <pubDate>Thu, 12 May 2022 11:47:56 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 2935번 Python: 소음</title>
      <link>https://praybe.tistory.com/215</link>
      <description>&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;p data-ke-size=&quot;size16&quot;&gt;얼마전에 초등학교 선생님으로 취직한 상근이는 이 문제를 수학 문제로 해결한다. 학생들을 진정시키기 위해 칠판에 수학 문제를 써주고, 아이들에게 조용히 이 문제를 풀게 한다. 학생들이 문제를 금방 풀고 다시 떠드는 것을 방지하기 위해서, 숫자를 매우 크게 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아직 초등학교이기 때문에, 학생들은 덧셈과 곱셈만 배웠다. 또, 아직 10의 제곱꼴을 제외한 다른 수는 학교에서 배우지 않았기 때문에, 선생님이 써주는 수는 모두 10의 제곱 형태이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쉬는 시간까지 문제를 푸는 것을 막기 위해서, 선생님이 써주는 숫자는 최대 100자리이다.&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;첫째 줄에 양의 정수 A가 주어진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;둘째 줄에 연산자 + 또는 *가 주어진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;셋째 줄에 양의 정수 B가 주어진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A와 B는 모두 10의 제곱 형태이고, 길이는 최대 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;첫째 줄에 결과를 출력한다. 결과는 A+B 또는 A*B이며, 입력에서 주어지는 연산자에 의해 결정된다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1652322779876&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;'''
방법 1
'''
a = int(input())
operator = str(input()) #연산자. str생략 가능 
b = int(input())

if operator == '+':
    print(a + b)
elif operator == '*':
    print(a * b)&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_1652322141921&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;'''
방법 2 리스트 활용
'''

# li = [] 리스트 생성
li = [input() for _ in range(3)]  # 리스트에 index길이 2인 반복문 추가
if li[1] == '+': # index 길이 1은 두 번째 입력 글자. 즉 연산자
    print(int(li[0]) + int(li[2]))
else:
    print(int(li[0]) * int(li[2]))&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;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;알고리즘 분류&lt;/h2&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/tag/124&quot;&gt;수학&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/tag/158&quot;&gt;문자열&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/tag/121&quot;&gt;사칙연산&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>coding practice/BOJ</category>
      <author>praybe</author>
      <guid isPermaLink="true">https://praybe.tistory.com/215</guid>
      <comments>https://praybe.tistory.com/215#entry215comment</comments>
      <pubDate>Thu, 12 May 2022 11:22:41 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 2675번 Python: 문자열 반복</title>
      <link>https://praybe.tistory.com/214</link>
      <description>&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;문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code &quot;alphanumeric&quot; 문자만 들어있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;QR Code &quot;alphanumeric&quot; 문자는&lt;span&gt;&amp;nbsp;&lt;/span&gt;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./:&lt;span&gt;&amp;nbsp;&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;첫째 줄에 테스트 케이스의 개수 T(1 &amp;le; T &amp;le; 1,000)가 주어진다. 각 테스트 케이스는 반복 횟수 R(1 &amp;le; R &amp;le; 8), 문자열 S가 공백으로 구분되어 주어진다. S의 길이는 적어도 1이며, 20글자를 넘지 않는다.&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;각 테스트 케이스에 대해 P를 출력한다.&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;i&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;참고&lt;/span&gt;&lt;/i&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;p data-ke-size=&quot;size16&quot;&gt;end = ' '&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;print문 내의 값을 출력 후 마지막 부분이 공백/줄바꿈 없이 이어서 출력&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; print( ab , end = '' )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; print( cd, end = '' )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 결과: abcd&amp;nbsp; &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;sep = ' '&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; &amp;nbsp; print( '안녕하', '잘가', '행복하',&lt;span style=&quot;background-color: #fafafa;&quot;&gt;&lt;span&gt;&amp;nbsp; sep&lt;/span&gt;&lt;/span&gt;= '세요!' )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 결과: 안녕하세요!잘가세요!행복하세요!&amp;nbsp;&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;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1652321503436&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;'''
방법 1
'''

t = int(input())

for _ in range(t):
    r, s = list(map(str, input().split()))
    r = int(r)
    
    #AAABBBCCC 이런식으로 출력해야하므로 반복문 내에 반복문 추가
    for i in range(len(s)) : 
        print((r*s[i])[:20], end='') # 20글자 제한
        
    print() #줄바꿈&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_1652321661943&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;'''
방법2 조금 생략
'''

t = int(input())

for _ in range(t):
    r, s = list(map(str, input().split()))
    r = int(r)
    for i in s:
        print(r*i, end='')
    print()&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_1652319102631&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;'''
방법 3 더 생략
'''
t = int(input())

for _ in range(t):
    r, s = input().split()
    for i in s:
        print(int(r)*i, end='')  
        
    print()&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;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;알고리즘 분류&lt;/h2&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/tag/102&quot;&gt;구현&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/tag/158&quot;&gt;문자열&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>coding practice/BOJ</category>
      <author>praybe</author>
      <guid isPermaLink="true">https://praybe.tistory.com/214</guid>
      <comments>https://praybe.tistory.com/214#entry214comment</comments>
      <pubDate>Thu, 12 May 2022 10:37:35 +0900</pubDate>
    </item>
    <item>
      <title>[백준]&amp;hearts;5355번 Python: 화성 수학</title>
      <link>https://praybe.tistory.com/208</link>
      <description>&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;a href=&quot;http://www.acmicpc.net/problem/3996&quot;&gt;3996번&lt;/a&gt;) 화성에서는 지구와는 조금 다른 연산자 @, %, #을 사용한다. @는 3을 곱하고, %는 5를 더하며, #는 7을 빼는 연산자이다. 따라서, 화성에서는 수학 식의 가장 앞에 수가 하나 있고, 그 다음에는 연산자가 있다.&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가 주어진다. 다음 줄에는 화성 수학식이 한 줄에 하나씩 주어진다. 입력으로 주어지는 수는 정수이거나 소수 첫째 자리까지 주어지며, 0 이상 100 이하이다. 연산자는 최대 3개 주어진다.&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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div id=&quot;problem_output&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 테스트 케이스에 대해서, 화성 수학식의 결과를 계산한 다음에, &lt;span style=&quot;background-color: #f6e199;&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;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;i&gt;((참고 더보기 클릭))&lt;/i&gt;&lt;/span&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;p data-ke-size=&quot;size16&quot;&gt;### 소수점 2자리 ###&lt;br /&gt;&lt;br /&gt;1.&amp;nbsp;f-string&amp;nbsp; &lt;br /&gt;&amp;nbsp;f&quot;{실수:&amp;nbsp;.자리수f}&quot; &lt;br /&gt;&amp;nbsp;print(f'{3.14: 0.2f}'} &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2.&amp;nbsp;round&amp;nbsp;메서드 &lt;br /&gt;&amp;nbsp;round(실수,&amp;nbsp;자릿수) &lt;br /&gt;&amp;nbsp;print(f&quot;{round(3.14,&amp;nbsp;2)}&quot;) &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3.&amp;nbsp;format메서드 &lt;br /&gt;format(실수,&amp;nbsp;&quot;.자리수f&quot;) &lt;br /&gt;print(format(3.14, &quot;0.2f&quot;)) &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4.&amp;nbsp;&quot;{}&quot;.format()메서드 &lt;br /&gt;&quot;{인덱스:.자리수f}&quot;.format(실수) &lt;br /&gt;print(&quot;{: 0.2f}&quot;.format(3.14)) &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;### 문자열 포매팅 ###&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%f소수점&amp;nbsp;6자리 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%0.2f&amp;nbsp;소수점&amp;nbsp;2자리 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.f%%&amp;nbsp;라고&amp;nbsp;적으면&amp;nbsp;퍼센트&amp;nbsp;표시 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%&amp;nbsp;문자열&amp;nbsp;포매팅&amp;nbsp;-&amp;gt;&amp;nbsp;개선&amp;nbsp;-&amp;gt;&amp;nbsp;str.format&amp;nbsp;-&amp;gt;&amp;nbsp;개선&amp;nbsp;-&amp;gt;&amp;nbsp;f-string&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;pre id=&quot;code_1652236474420&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;'''
방법 1
'''

# t에 테스트 케이스 개수를 입력 받기
t = int(input())

# t에 저장된 테스트 케이스 수만큼 반복
for _ in range(t):
    mars = list(map(str, input().split()))  # 입력받은 것을 리스트 변수로 만듬
    answer = 0
    
     #len()메서드는 list 요소 개수를 돌려줌
    for i in range(len(mars)): #mars 길이만큼 반복(연산자 수만큼 연산자 계산)
        if i == 0: #index 0 은 숫자. 즉 숫자만 입력시
            answer += float(mars[i])
        else: #화성 연산자 정의
            if mars[i] == '@':
                answer *= 3
            elif mars[i] == '%':
                answer += 5
            elif mars[i] == '#': 
                answer -= 7
    
  print(f'{answer: 0.2f}') #f'{연산값: 소수2자리}'&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_1652258118742&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;'''
방법 2 가장 선호하는 방법
'''

t = int(input())

for _ in range(t):
    mars = list(map(str, input().split())) 
    answer = float(mars[0]) 
    
    for i in range(len(mars)) :
            if mars[i] == '@':
                answer *= 3
            elif mars[i] == '%':
                answer += 5
            elif mars[i] == '#': 
                answer -= 7
                
     print(f'{answer:0.2f}')&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_1652236995270&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;'''
방법 3 pop() 메서드
'''

t = int(input()) 

for _ in range(t):
    mars = list(input().split())
    answer = float(mars.pop(0)) #pop(0)메서드 호출시 첫 번째 데이터 제거
    #pop(n)지정한 인덱스 삭제하고 삭제한 값 획득
    #pop() 인덱스가 없는 경우 마지막 값 획득하고 삭제
    
    for i in range(len(mars)):
        if mars[i] == '@':
            num *= 3
        elif mars[i] == '%':
            num += 5
        elif mars[i] == '#':
            num -= 7
    
    print(f'{answer: 0.2f}')&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_1652257251542&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;'''
방법 4
'''

t = int(input())

for _ in range(t):
    mars = list(map(str, input().split())) 
    answer = float(mars[0]) #리스트변수에서 인덱스 0값은 계산을 시작하는 값이라 따로 실수로 변수 생성
    operators = mars[1:] #리스트변수에서 인덱스 1부터 끝까지 값은 연산자로서 따로 리스트변수 생성
    # 리스트슬라이싱 [인데스n부터:인덱스m까지] n부터 m까지 잘라서 새 리스트 만듬
    
    for operator in operators : #연산자 리스트 변수에서 연산자들 하나씩 반복
            if operator == &quot;@&quot;:
                num *= 3
            elif operator == &quot;%&quot;:
                num += 5
            elif operator == &quot;#&quot;: 
                num -= 7
                
    print(format(answer, &quot;.2f&quot;))&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_1652259879096&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;'''
방법 5
'''

for _ in range(int(input())):
    s = input()
    print('{0:0.2f}'.format(eval('('*s.count(' 
    ')+s.replace('@','*3)').replace('%','+5)').replace('#','-7)'))))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;알고리즘 분류&lt;/h2&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/tag/124&quot;&gt;수학&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/tag/102&quot;&gt;구현&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/tag/121&quot;&gt;사칙연산&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>coding practice/BOJ</category>
      <author>praybe</author>
      <guid isPermaLink="true">https://praybe.tistory.com/208</guid>
      <comments>https://praybe.tistory.com/208#entry208comment</comments>
      <pubDate>Wed, 11 May 2022 11:40:50 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 2914번 Python: 저작권</title>
      <link>https://praybe.tistory.com/207</link>
      <description>&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;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;이때, 평균값은 &lt;span style=&quot;background-color: #ffc9af;&quot;&gt;항상 올림&lt;/span&gt;을 해서 정수로 만들어야 한다. 예를 들어, 창영이의 1집 앨범 &quot;영창에서 영원히 영창피아노를 친다&quot;에 총 38개 곡이 수록되어 있고, 이 앨범에 저작권이 있는 멜로디가 894개가 있다면, 평균값은 23.53이 되고 올림해서 24가 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;매니저 강산이는 얼마나 많은 사람에게 저작권료를 주어야 하는지 궁금해졌다. 강산이가 알고 있는 정보는 앨범에 수록되어 있는 곡의 개수와 위에서 구한 평균값이다. 이때, &lt;span style=&quot;background-color: #ffc9af;&quot;&gt;적어도 몇 곡&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;첫째 줄에 앨범에 수록된 곡의 개수 A와 평균값 I가 주어진다. (1 &amp;le; A, I &amp;le; 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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1652229826888&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 앨범수록곡 개수 a 평균값 i
a, i = map(int, input().split())

# 저작권멜로디 개수 n
# i = n / a -&amp;gt; n = a * i
# a가 10, i가 10일 경우 100(n) / 10(a) 해서 평균이 10(i)일 수 있지만 
# 9.1도 올림해서 10이 될 수 있다. 이 경우 최소값은 100이 아닌 91이 된다. 
# 10(a) * (10(i)-1) = 90 + 1 = 91

print( a * (i-1) + 1)&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;</description>
      <category>coding practice/BOJ</category>
      <author>praybe</author>
      <guid isPermaLink="true">https://praybe.tistory.com/207</guid>
      <comments>https://praybe.tistory.com/207#entry207comment</comments>
      <pubDate>Wed, 11 May 2022 09:44:16 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 2530번 Python: 인공지능 시계</title>
      <link>https://praybe.tistory.com/206</link>
      <description>&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;KOI 전자에서는 건강에 좋고 맛있는 훈제오리구이 요리를 간편하게 만드는 인공지능 오븐을 개발하려고 한다. 인공지능 오븐을 사용하는 방법은 적당한 양의 오리 훈제 재료를 인공지능 오븐에 넣으면 된다. 그러면 인공지능 오븐은 오븐구이가 끝나는 시간을 초 단위로 자동적으로 계산한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, KOI 전자의 인공지능 오븐 앞면에는 사용자에게 훈제오리구이 요리가 끝나는 시각을 알려 주는 디지털 시계가 있다. &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;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 (0 &amp;le; A &amp;le; 23), 분 B (0 &amp;le; B &amp;le; 59)와 초 C (0 &amp;le; C &amp;le; 59)가 정수로 빈칸을 사이에 두고 순서대로 주어진다. 두 번째 줄에는 요리하는 데 필요한 시간 D (0 &amp;le; D &amp;le; 500,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;첫째 줄에 종료되는 시각의 시, 분, 초을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수이며, 분, 초는 0부터 59까지의 정수이다. 디지털 시계는 23시 59분 59초에서 1초가 지나면 0시 0분 0초가 된다.)&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1652167673917&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;'''
방법 1
'''

a, b, c = map(int, input().split()) #시분초
d = int(input()) #초단위

c += d  % 60  # 60으로 나눈 나머지가 초. 몫은 분과 시
b += (d // 60 ) % 60  # 몫에서(분과 시 공존) 다시 60으로 나눈 나머지가 분
a += ((d // 60) // 60 ) % 24 #??

if c &amp;gt;= 60 :
    b += 1
    c -= 60
    
if b &amp;gt;= 60 :
    a += 1
    b -= 60
    
if a &amp;gt;= 24 :
    a -= 24
    
print(a, b , c)&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_1652171452299&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;'''
방법 2
'''

a, b ,c = map(int, input().split())
d = int(input())

c += d
b += c // 60  # 분 = 초 나누기 60의 몫
a += b // 60  # 시 = 분 나누기 60의 몫

c %= 60  # c = c % 60
b %= 60
a %= 24

print(a, b, c)&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_1652169186059&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;'''
방법 3
'''

a, b, c = map(int,input().split())
d = int(input())

c += d
b += c // 60
a += b // 60

print(a%24, b%60, c%60)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;알고리즘 분류&lt;/h2&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/tag/124&quot;&gt;수학&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/tag/121&quot;&gt;사칙연산&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>coding practice/BOJ</category>
      <author>praybe</author>
      <guid isPermaLink="true">https://praybe.tistory.com/206</guid>
      <comments>https://praybe.tistory.com/206#entry206comment</comments>
      <pubDate>Tue, 10 May 2022 16:28:07 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 2525번 Python: 오븐 시계</title>
      <link>https://praybe.tistory.com/205</link>
      <description>&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;KOI 전자에서는 건강에 좋고 맛있는 훈제오리구이 요리를 간편하게 만드는 인공지능 오븐을 개발하려고 한다. 인공지능 오븐을 사용하는 방법은 적당한 양의 오리 훈제 재료를 인공지능 오븐에 넣으면 된다. 그러면 인공지능 오븐은 오븐구이가 끝나는 시간을 분 단위로 자동적으로 계산한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, KOI 전자의 인공지능 오븐 앞면에는 사용자에게 훈제오리구이 요리가 끝나는 시각을 알려 주는 디지털 시계가 있다.&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;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 (0 &amp;le; A &amp;le; 23) 와 분 B (0 &amp;le; B &amp;le; 59)가 정수로 빈칸을 사이에 두고 순서대로 주어진다. 두 번째 줄에는 요리하는 데 필요한 시간 C (0 &amp;le; C &amp;le; 1,000)가 분 단위로 주어진다.&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;첫째 줄에 종료되는 시각의 시와 분을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수, 분은 0부터 59까지의 정수이다. 디지털 시계는 23시 59분에서 1분이 지나면 0시 0분이 된다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1652165380628&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;'''
방법 1
'''

#현재 시각( 시 a, 분 b)
 a, b = map(int, input().split())
#요리 시간 c 분 단위
c = int(input())

a += c // 60    #시간은 요리시간을 60으로 나눈 몫 만큼 증가 
b += c % 60      #분은 요리시간을 60으로 나눈 나머지 만큼 증가

if b &amp;gt;= 60 : # 60분 이상이면 
    a += 1   # 1시간 증가 
    b -= 60  # 60분(1시간)만큼 분 감소
    
if a &amp;gt;= 24 : #24시간 이상이면
    a -= 24  # 24시간(1일)만큼 시 감소

print(a, b) #종료 시간&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;pre id=&quot;code_1652232019080&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;'''
방법 2
'''

a, b = map(int, input().split())
c = int(input())

b += c
a += b // 60

b %= 60
a %= 24

print(a, b)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;알고리즘 분류&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/tag/124&quot;&gt;수학&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/tag/121&quot;&gt;사칙연산&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;</description>
      <category>coding practice/BOJ</category>
      <author>praybe</author>
      <guid isPermaLink="true">https://praybe.tistory.com/205</guid>
      <comments>https://praybe.tistory.com/205#entry205comment</comments>
      <pubDate>Tue, 10 May 2022 15:49:56 +0900</pubDate>
    </item>
  </channel>
</rss>