<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>joohee.log</title>
        <link>https://velog.io/</link>
        <description>완벽한 글 보다, 그 과정들을 기록하는 개발자</description>
        <lastBuildDate>Thu, 06 Mar 2025 09:25:46 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>joohee.log</title>
            <url>https://velog.velcdn.com/images/joohee_97124/profile/824d87bd-f404-4534-85db-e79c5a03ce6b/social_profile.jpeg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. joohee.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/joohee_97124" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[그리디 : 볼링공 고르기]]></title>
            <link>https://velog.io/@joohee_97124/%EA%B7%B8%EB%A6%AC%EB%94%94-%EB%B3%BC%EB%A7%81%EA%B3%B5-%EA%B3%A0%EB%A5%B4%EA%B8%B0</link>
            <guid>https://velog.io/@joohee_97124/%EA%B7%B8%EB%A6%AC%EB%94%94-%EB%B3%BC%EB%A7%81%EA%B3%B5-%EA%B3%A0%EB%A5%B4%EA%B8%B0</guid>
            <pubDate>Thu, 06 Mar 2025 09:25:46 GMT</pubDate>
            <description><![CDATA[<h3 id="문제">문제</h3>
<ul>
<li>서로 무게가 다른 볼링공을 골라야 함</li>
<li>볼링공 N개 , 무게는 1~M</li>
<li>두 사람이 볼링공을 고르는 경우의 수</li>
</ul>
<h3 id="내-풀이">내 풀이</h3>
<ol>
<li>N,M 을 입력받기 / list_N 입력받기</li>
<li>list_N 을 정렬</li>
<li>2중 for문을 돌면서 </li>
</ol>
<p>-- list_N[i]와 list_N[j]이 같으면 패스 
-- 없으면 total += 1</p>
<pre><code>N,M = map(int,input().split())
list_N = list(map(int,input().split()))
total = 0

for i in range(len(list_N)):
  for j in range(i, len(list_N)):
    if list_N[i] != list_N[j]:
      total += 1

print(total)</code></pre><h2 id="250306">25/03/06</h2>
<h3 id="고민">고민</h3>
<ul>
<li>똑같이 2중 for문으로 풀었다,,,</li>
<li>챗지피티에게 물어보니 아래와 같은 코드를 추천해줌ㅠ<pre><code># 입력 받기
N, M = map(int, input().split())  # 볼링공 개수, 무게의 범위
balls = list(map(int, input().split()))  # 볼링공의 무게 리스트
</code></pre></li>
</ul>
<h1 id="1️⃣-무게별-볼링공-개수-세기">1️⃣ 무게별 볼링공 개수 세기</h1>
<p>count_by_weight = [0] * (M + 1)  # 무게별 개수 저장할 리스트</p>
<p>for ball in balls:
    count_by_weight[ball] += 1</p>
<h1 id="2️⃣-전체-조합-계산-on">2️⃣ 전체 조합 계산 (O(N))</h1>
<p>total_pairs = (N * (N - 1)) // 2  # 전체 가능한 조합 개수 (nC2)
same_weight_pairs = 0  # 같은 무게의 볼링공을 선택하는 경우의 수</p>
<p>for weight in range(1, M + 1):
    if count_by_weight[weight] &gt; 1:  # 같은 무게가 2개 이상이면
        same_weight_pairs += (count_by_weight[weight] * (count_by_weight[weight] - 1)) // 2  # 같은 무게끼리 선택하는 경우</p>
<h1 id="3️⃣-다른-무게의-공을-선택하는-경우의-수--전체-조합---같은-무게-조합">3️⃣ 다른 무게의 공을 선택하는 경우의 수 = 전체 조합 - 같은 무게 조합</h1>
<p>result = total_pairs - same_weight_pairs</p>
<p>print(result)
<del>~</del></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[그리디 : 만들 수 없는 금액]]></title>
            <link>https://velog.io/@joohee_97124/%EA%B7%B8%EB%A6%AC%EB%94%94-%EB%A7%8C%EB%93%A4-%EC%88%98-%EC%97%86%EB%8A%94-%EA%B8%88%EC%95%A1-od8y58n5</link>
            <guid>https://velog.io/@joohee_97124/%EA%B7%B8%EB%A6%AC%EB%94%94-%EB%A7%8C%EB%93%A4-%EC%88%98-%EC%97%86%EB%8A%94-%EA%B8%88%EC%95%A1-od8y58n5</guid>
            <pubDate>Thu, 06 Mar 2025 09:03:45 GMT</pubDate>
            <description><![CDATA[<h2 id="250306">25/03/06</h2>
<h3 id="문제">문제</h3>
<p>Q) 만들 수 없는 금액
동전 여러 개가 주어질 때, 이 동전들로 만들 수 없는 가장 작은 금액을 구하는 문제.</p>
<p>입력 예) 
동전 : [3, 2, 1, 1, 9]
출력 예) 
8</p>
<h3 id="내-풀이">내 풀이</h3>
<ol>
<li>data 가장 작은 동전부터 오름차순 정렬</li>
<li>data list 에서 젤 작은애부터 + 해주면서 
target (최대값) &lt; 동전
이면 target이 정답
다 돌때까지 target &gt;= 동전
이면 target이 정답임 </li>
</ol>
<h3 id="코드">코드</h3>
<pre><code>data = list(map(int,input().split()))
target = 1

data.sort()
print(data)

for i in data:
  if i &gt; target :
    print(&#39;answer&#39;, target)
    break
  target += i
  print(target)</code></pre><h3 id="fail-인-이유">Fail 인 이유</h3>
<ul>
<li>target += i 가 이해 안감,, 왜 저렇게 하면 더할 수 있는 모든 숫자가 나오는지,,?</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[그리디 : 체육복]]></title>
            <link>https://velog.io/@joohee_97124/%EA%B7%B8%EB%A6%AC%EB%94%94-%EC%B2%B4%EC%9C%A1%EB%B3%B5</link>
            <guid>https://velog.io/@joohee_97124/%EA%B7%B8%EB%A6%AC%EB%94%94-%EC%B2%B4%EC%9C%A1%EB%B3%B5</guid>
            <pubDate>Tue, 09 Jan 2024 14:03:11 GMT</pubDate>
            <description><![CDATA[<h3 id="아직-푸는-중이다---">아직 푸는 중이다,, ! ! !</h3>
<h3 id="문제">문제</h3>
<p><img src="https://velog.velcdn.com/images/joohee_97124/post/b9484af1-cdbd-4f45-b990-c8a154049da7/image.png" alt="">
<img src="https://velog.velcdn.com/images/joohee_97124/post/57b2feec-3fda-4970-a23c-35a92cc237e3/image.png" alt=""></p>
<h3 id="내풀이">내풀이</h3>
<ol>
<li>lost 와 reserve를 정렬 &gt; 같은 수가 있다면 remove 해주기</li>
</ol>
<p>-- 같은 수가 있다면 걔네를 delete_list 에 append
-- lost, reserve 에서 delete_list 값들을 remove 
2. total = len(lost)
-- reserve[i]의 값 -+1 = lost에 있을 때 --&gt; lost에서 해당 값 remove 해주기</p>
<pre><code>def solution(n, lost, reserve):
    answer = 0

    delete_list = []
    lost.sort()
    reserve.sort()

    for i in lost:
        if i in reserve:
            delete_list.append(i)

    for i in delete_list:
        lost.remove(i)
        reserve.remove(i)

    for i in reserve:
        if i+1 in lost:
            lost.remove(i+1)
        elif i-1 in lost:
            lost.remove(i-1)

    total = len(lost)
    answer= n - total


    return answer</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[그리디 : 볼링공 고르기]]></title>
            <link>https://velog.io/@joohee_97124/%EA%B7%B8%EB%A6%AC%EB%94%94-%EB%B3%BC%EB%A7%81%EA%B3%B5-%EA%B3%A0%EB%A5%B4%EA%B8%B0</link>
            <guid>https://velog.io/@joohee_97124/%EA%B7%B8%EB%A6%AC%EB%94%94-%EB%B3%BC%EB%A7%81%EA%B3%B5-%EA%B3%A0%EB%A5%B4%EA%B8%B0</guid>
            <pubDate>Tue, 09 Jan 2024 13:20:35 GMT</pubDate>
            <description><![CDATA[<h3 id="문제">문제</h3>
<ul>
<li>서로 무게가 다른 볼링공을 골라야 함</li>
<li>볼링공 N개 , 무게는 1~M</li>
<li>두 사람이 볼링공을 고르는 경우의 수</li>
</ul>
<h3 id="내-풀이">내 풀이</h3>
<ol>
<li>N,M 을 입력받기 / list_N 입력받기</li>
<li>list_N 을 정렬</li>
<li>2중 for문을 돌면서 </li>
</ol>
<p>-- list_N[i]와 list_N[j]이 같으면 패스 
-- 없으면 total += 1</p>
<pre><code>N,M = map(int,input().split())
list_N = list(map(int,input().split()))
total = 0

for i in range(len(list_N)):
  for j in range(i, len(list_N)):
    if list_N[i] != list_N[j]:
      total += 1

print(total)</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[그리디 : 만들 수 없는 금액]]></title>
            <link>https://velog.io/@joohee_97124/%EA%B7%B8%EB%A6%AC%EB%94%94-%EB%A7%8C%EB%93%A4-%EC%88%98-%EC%97%86%EB%8A%94-%EA%B8%88%EC%95%A1</link>
            <guid>https://velog.io/@joohee_97124/%EA%B7%B8%EB%A6%AC%EB%94%94-%EB%A7%8C%EB%93%A4-%EC%88%98-%EC%97%86%EB%8A%94-%EA%B8%88%EC%95%A1</guid>
            <pubDate>Tue, 09 Jan 2024 13:07:50 GMT</pubDate>
            <description><![CDATA[<h3 id="문제">문제</h3>
<ul>
<li>N개의 동전을 이용하여 만들 수 없는 양의 정수 금액 중 최솟값 구하기</li>
<li>입력 예시
5
3 2 1 1 9</li>
<li>출력 예시
8</li>
</ul>
<h3 id="내-풀이">내 풀이</h3>
<ol>
<li>N, list_N 입력받기</li>
<li>list_N의 원소들의 합을 sum_list 에 append</li>
</ol>
<p>-- 2중 for문으로 
3. sum_list를 정렬 -&gt; for문으로 돌면서 
-- result = 1 == sum_list[i] --&gt; result+=1 해주기</p>
<pre><code>N = int,input().split()
list_N = list(map(int,input().split()))
sum_list = []
result = 1

for i in range(len(list_N)):
  current_sum = 0 
  for j in range(i, len(list_N)):
    current_sum += list_N[j]
    sum_list.append(current_sum)

sum_list.sort()
for i in sum_list:
  if result == i:
    result +=1

print(result)</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[그리드 : 문자열 뒤집기]]></title>
            <link>https://velog.io/@joohee_97124/%EA%B7%B8%EB%A6%AC%EB%93%9C-%EB%AC%B8%EC%9E%90%EC%97%B4-%EB%92%A4%EC%A7%91%EA%B8%B0</link>
            <guid>https://velog.io/@joohee_97124/%EA%B7%B8%EB%A6%AC%EB%93%9C-%EB%AC%B8%EC%9E%90%EC%97%B4-%EB%92%A4%EC%A7%91%EA%B8%B0</guid>
            <pubDate>Mon, 08 Jan 2024 13:41:19 GMT</pubDate>
            <description><![CDATA[<h3 id="문제">문제</h3>
<ul>
<li>문자열 S 의 모든 숫자를 같게 하는 것이 목적</li>
<li>연속된 하나 이상의 숫자를 잡고 모두 뒤집기</li>
<li>최소 횟수를 구하여라</li>
</ul>
<h3 id="내-풀이">내 풀이</h3>
<ol>
<li>문자열 -&gt; 1개씩 잘라서 리스트로 변환</li>
<li>리스트를 for문으로 돌면서 0-&gt;1 또는 1-&gt;0 으로 바뀌는 구간의 개수 구하기 = count</li>
<li>** count가 짝수 -&gt; total = count//2 
count가 홀수 -&gt; total = count//2 +1 **</li>
</ol>
<pre><code>S = input()
list_S = []
count = 0
total = 0

for i in range(len(S)):
  a = S[i:i+1]
  list_S.append(a)

for i in range(len(list_S)-1):
  if list_S[i] != list_S[i+1] :
    count+=1

if count%2==0:
  total = count//2
else:
  total = count//2 +1

print(total)
</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[그리드 : 곱하기 혹은 더하기]]></title>
            <link>https://velog.io/@joohee_97124/%EA%B7%B8%EB%A6%AC%EB%93%9C-%EA%B3%B1%ED%95%98%EA%B8%B0-%ED%98%B9%EC%9D%80-%EB%8D%94%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@joohee_97124/%EA%B7%B8%EB%A6%AC%EB%93%9C-%EA%B3%B1%ED%95%98%EA%B8%B0-%ED%98%B9%EC%9D%80-%EB%8D%94%ED%95%98%EA%B8%B0</guid>
            <pubDate>Mon, 08 Jan 2024 13:17:18 GMT</pubDate>
            <description><![CDATA[<h3 id="문제">문제</h3>
<ul>
<li>문자열 S</li>
<li>왼쪽 &gt; 오른쪽 순서</li>
<li>&#39;x&#39; 혹은 &#39;+&#39; 연산으로 만들 수 있는 가장 큰 수를 구하기</li>
<li>입력 예시
02984</li>
<li>출력 예시
0+2<em>9</em>8*4 = 567</li>
</ul>
<h3 id="내-풀이">내 풀이</h3>
<ol>
<li>문자열 S를 1글자씩 잘라서 int로 바꿔줌</li>
<li>입력된 리스트 를 for문 돌면서</li>
</ol>
<ul>
<li>리스트의 i가 0이면 ** 혹은 total 값이 0이면 ** +</li>
<li>0이 아니면 x를 해줌</li>
</ul>
<pre><code>S = input()
list_S = []
total = 0

for i in range(len(S)):
  a = int(S[i:i+1])
  list_S.append(a)

for i in list_S:
  if i==0 or total==0:
    total += i
  else:
    total *= i

print(total)
</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[그리디 : 모험가길드]]></title>
            <link>https://velog.io/@joohee_97124/%EA%B7%B8%EB%A6%AC%EB%94%94-%EB%AA%A8%ED%97%98%EA%B0%80%EA%B8%B8%EB%93%9C</link>
            <guid>https://velog.io/@joohee_97124/%EA%B7%B8%EB%A6%AC%EB%94%94-%EB%AA%A8%ED%97%98%EA%B0%80%EA%B8%B8%EB%93%9C</guid>
            <pubDate>Mon, 08 Jan 2024 12:58:41 GMT</pubDate>
            <description><![CDATA[<h3 id="문제">문제</h3>
<ul>
<li><p>모험가 N명</p>
</li>
<li><p>공포도 X</p>
</li>
<li><p>반드시 X명 이상으로 구성한 모험가 그룹에 참여해야 여행을 떠날 수 있음</p>
</li>
<li><p>여행을 떠날 수 있는 그룹의 최댓값 구하기</p>
</li>
<li><p>입력 예시
5
2 3 1 2 2 </p>
</li>
<li><p>출력 예시
2</p>
</li>
</ul>
<h3 id="내-풀이">내 풀이</h3>
<ol>
<li>N, X 입력받기</li>
<li>X 크기 순으로 정렬</li>
</ol>
<ul>
<li>outX = X리스트 내 중복값 제거한 리스트 만들기</li>
<li>outX를 돌면서 X리스트 내의 개수 // i 를 + 해주기</li>
</ul>
<pre><code>N = int,input().split()
X = list(map(int,input().split()))
total = 0

X.sort() # X 정렬
outX = list(set(X)) # X에서 중복 제거

for i in outX:
  total += X.count(i) // i

print(total)</code></pre><h2 id="250305">25/03/05</h2>
<h3 id="내-풀이-1">내 풀이</h3>
<ol>
<li>list를 내림차순으로 정렬</li>
<li>listSize = len(list)
i = 0 
while True:
만약에 i가 list길이보다 작으면<ul>
<li>count+=1</li>
<li>i += list[i]<br>크면 반복문 중지</li>
</ul>
</li>
</ol>
<p>3 2 2 2 1
0 1 2 3 4
len 5</p>
<h3 id="코드">코드</h3>
<pre><code>n = int(input())
data = list(map(int,input().split()))

data.sort(reverse=True)
i = 0
count = 0

while True:
  if i &lt; len(data):
    i += data[i]
    count += 1
  else:
    break

print(count)</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[k-겹 교차검증 이 먼대?!]]></title>
            <link>https://velog.io/@joohee_97124/k-%EA%B2%B9-%EA%B5%90%EC%B0%A8%EA%B2%80%EC%A6%9D-%EC%9D%B4-%EB%A8%BC%EB%8C%80</link>
            <guid>https://velog.io/@joohee_97124/k-%EA%B2%B9-%EA%B5%90%EC%B0%A8%EA%B2%80%EC%A6%9D-%EC%9D%B4-%EB%A8%BC%EB%8C%80</guid>
            <pubDate>Mon, 10 Apr 2023 06:33:47 GMT</pubDate>
            <description><![CDATA[<h3 id="원래는-">원래는 ...</h3>
<ul>
<li>머신러닝을 학습시킬 때, 훈련 데이터 / 테스트 데이터로 나눈다
( 보통 70 : 30 으로 나눔 )</li>
<li>70% 데이터를 모델 테스트 과정에서도 사용할 방법이 있다면 좋겠지?
<img src="https://velog.velcdn.com/images/joohee_97124/post/adf5e379-a144-47db-8f76-df11c91f9fe9/image.png" alt=""></li>
</ul>
<h3 id="k겹-교차검증">k겹 교차검증</h3>
<p>= 집합을 체계적으로 바꿔가면서 모든 데이터에 대해 모형의 성과를 측정하는 검증 방식</p>
<ul>
<li><p>k겹 → 전체 데이터셋을 K개의 부분집합으로 나눈다
( fold = k 개로 나눈 부분집합 데이터 )</p>
</li>
<li><p>교차 →  fold 들을 차례대로 교차해 테스트 데이터로 사용
( 아래 그림을 보자 ! )
<img src="https://velog.velcdn.com/images/joohee_97124/post/75f2db9a-d8fc-4b2f-960a-9b3dd1d6f971/image.png" alt=""></p>
</li>
</ul>
<h3 id="k-겹-교차검증의-흐름">k-겹 교차검증의 흐름</h3>
<ul>
<li>만약 우리가 모델의 정확도(accuracy)를 측정해보고 싶다면,
1번 fold가 테스트 데이터일 때 모델을 학습시켜 정확도를 산출, 
2번 fold가 테스트 데이터일 때 모델을 학습시켜 정확도를 산출,
3번 fold가 테스트 데이터일 때 모델을 학습시켜 정확도를 산출...
이 과정을 k번 fold까지 반복
→ 모델 검증 결과가 k개 나온다
→ 이 k개의 결과물들의 평균값 = K겹 교차 검증 방식을 활용한 모델의 성능</li>
</ul>
<h3 id="참고사이트">참고사이트</h3>
<p><a href="https://bbdata.tistory.com/10">https://bbdata.tistory.com/10</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[프로그래머스 : 등수 매기기]]></title>
            <link>https://velog.io/@joohee_97124/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EB%93%B1%EC%88%98-%EB%A7%A4%EA%B8%B0%EA%B8%B0</link>
            <guid>https://velog.io/@joohee_97124/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EB%93%B1%EC%88%98-%EB%A7%A4%EA%B8%B0%EA%B8%B0</guid>
            <pubDate>Tue, 07 Feb 2023 08:48:15 GMT</pubDate>
            <description><![CDATA[<h3 id="문제">문제</h3>
<p><img src="https://velog.velcdn.com/images/joohee_97124/post/92b73a47-5f05-49e6-9a6f-6a94bbad2e1d/image.png" alt=""></p>
<h3 id="풀이">풀이</h3>
<pre><code class="language-python">def solution(score):
    answer = []
    avgList=[]

    for i in score:
        avgList.append(sum(i)/len(i))

    sort_avgList= sorted(avgList, reverse=True)

    for i in avgList:
        answer.append(sort_avgList.index(i)+1)

    return answer</code></pre>
<h3 id="주의사항">주의사항</h3>
<ul>
<li>1) 원래 점수를 list에 기록한다</li>
<li>2) list를 점수 순위대로 sort한 new_list를 만든다</li>
<li>3) new_list에서 list의 값을 찾고 인덱스 값을 넣는다</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[프로그래머스 : 영어가싫어요]]></title>
            <link>https://velog.io/@joohee_97124/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%98%81%EC%96%B4%EA%B0%80%EC%8B%AB%EC%96%B4%EC%9A%94</link>
            <guid>https://velog.io/@joohee_97124/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%98%81%EC%96%B4%EA%B0%80%EC%8B%AB%EC%96%B4%EC%9A%94</guid>
            <pubDate>Thu, 02 Feb 2023 02:00:52 GMT</pubDate>
            <description><![CDATA[<h3 id="문제">문제</h3>
<p><img src="https://velog.velcdn.com/images/joohee_97124/post/73967705-5122-4b2f-8bfb-fb667fa8feb2/image.png" alt=""></p>
<h3 id="코드">코드</h3>
<pre><code class="language-python">def solution(numbers):
    answer = 0
    eng = {&#39;zero&#39; : 0, &#39;one&#39;:1, &#39;two&#39;:2, &#39;three&#39; : 3, &#39;four&#39;:4, &#39;five&#39;:5,&#39;six&#39; : 6, &#39;seven&#39; : 7, &#39;eight&#39;:8,&#39;nine&#39;:9}

    for k, v in eng.items():
        numbers = numbers.replace(k, str(v))

    answer = int(numbers)
    return answer</code></pre>
<h3 id="주의">주의</h3>
<ul>
<li>dict 형태로 0부터 9까지 key,value를 맞춰준다</li>
<li>dict.items() 
: Key, Value 쌍 얻는 함수 (k,v 모두 출력)</li>
<li>for문을 돌면서 k,v 를 가져온 뒤 numbers에 있는 k를 v(str형태로 변형) 로 바꿔준다 </li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[코드업2001 최소대금]]></title>
            <link>https://velog.io/@joohee_97124/%EC%BD%94%EB%93%9C%EC%97%852001-%EC%B5%9C%EC%86%8C%EB%8C%80%EA%B8%88</link>
            <guid>https://velog.io/@joohee_97124/%EC%BD%94%EB%93%9C%EC%97%852001-%EC%B5%9C%EC%86%8C%EB%8C%80%EA%B8%88</guid>
            <pubDate>Tue, 27 Dec 2022 01:16:57 GMT</pubDate>
            <description><![CDATA[<h3 id="문제">문제</h3>
<p><img src="https://velog.velcdn.com/images/joohee_97124/post/14c8115a-e2a8-482b-93bd-3bbe94d1ad6f/image.png" alt=""></p>
<h3 id="입력예시">입력예시</h3>
<pre><code class="language-python">800
700
900
198
330</code></pre>
<h3 id="출력예시">출력예시</h3>
<pre><code class="language-python">987.8</code></pre>
<h3 id="코드">코드</h3>
<pre><code class="language-python">&#39;&#39;&#39;
로직
1. 입력 5행 → 파스타 3개 / 쥬스 2개 로 저장
2. 파스타 및 쥬스 정렬 (sort)
3. 파스타[0] + 쥬스[0] + 10%의 가격
&#39;&#39;&#39;

pasta=[]
juice=[]

for i in range(3):
    a = int(input())
    pasta.append(a)

for i in range(2):
    a = int(input())
    juice.append(a)

pasta.sort()
juice.sort()

pretotal = pasta[0]+juice[0]
total = pretotal + 0.1*pretotal

print(total)</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[코드업6098  성실한개미]]></title>
            <link>https://velog.io/@joohee_97124/%EC%BD%94%EB%93%9C%EC%97%856098-%EC%84%B1%EC%8B%A4%ED%95%9C%EA%B0%9C%EB%AF%B8</link>
            <guid>https://velog.io/@joohee_97124/%EC%BD%94%EB%93%9C%EC%97%856098-%EC%84%B1%EC%8B%A4%ED%95%9C%EA%B0%9C%EB%AF%B8</guid>
            <pubDate>Tue, 27 Dec 2022 01:15:41 GMT</pubDate>
            <description><![CDATA[<h3 id="문제">문제</h3>
<p><img src="https://velog.velcdn.com/images/joohee_97124/post/60926609-5770-4075-9944-6590f1d7c287/image.png" alt=""></p>
<h3 id="입력예시">입력예시</h3>
<pre><code class="language-python">1 1 1 1 1 1 1 1 1 1
1 0 0 1 0 0 0 0 0 1
1 0 0 1 1 1 0 0 0 1
1 0 0 0 0 0 0 1 0 1
1 0 0 0 0 0 0 1 0 1
1 0 0 0 0 1 0 1 0 1
1 0 0 0 0 1 2 1 0 1
1 0 0 0 0 1 0 0 0 1
1 0 0 0 0 0 0 0 0 1
1 1 1 1 1 1 1 1 1 1</code></pre>
<h3 id="출력예시">출력예시</h3>
<pre><code class="language-python">1 1 1 1 1 1 1 1 1 1
1 9 9 1 0 0 0 0 0 1
1 0 9 1 1 1 0 0 0 1
1 0 9 9 9 9 9 1 0 1
1 0 0 0 0 0 9 1 0 1
1 0 0 0 0 1 9 1 0 1
1 0 0 0 0 1 9 1 0 1
1 0 0 0 0 1 0 0 0 1
1 0 0 0 0 0 0 0 0 1
1 1 1 1 1 1 1 1 1 1</code></pre>
<h3 id="코드">코드</h3>
<pre><code class="language-python">graph=[]
for i in range(10):
    a = list(map(int,input().split()))
    graph.append(a)

x=1
y=1

while(True):

    if graph[x][y+1]==2 :
        #print(&#39;x0&#39;,x,&#39;y&#39;,y)
        graph[x][y]=9
        graph[x][y+1]=9
        break
    elif graph[x][y+1]==1 and graph[x+1][y]==2:
        graph[x][y]=9
        graph[x+1][y]=9
        break
    elif graph[x][y+1]==1 and graph[x+1][y]==0:
        #print(&#39;x2&#39;,x,&#39;y&#39;,y)
        graph[x][y]=9
        x +=1
    elif graph[x][y+1]==0:
        #print(&#39;x1&#39;,x,&#39;y&#39;,y)
        graph[x][y]=9
        y += 1
    else:
        #print(&#39;x3&#39;,x,&#39;y&#39;,y)
        graph[x][y]=9
        break

for i in range(10):
    for j in range(10):
        print(graph[i][j], end=&#39; &#39;)
    print()
</code></pre>
<h3 id="주의">주의</h3>
<ul>
<li>if문의 향연,,,</li>
<li>while(True)를 사용할 때는 break를 잘 걸어주어야 한다 
안그러면 시간초과 어쩌고가 나더라고?</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[코드업6097 설탕과자뽑기]]></title>
            <link>https://velog.io/@joohee_97124/%EC%BD%94%EB%93%9C%EC%97%856097-%EC%84%A4%ED%83%95%EA%B3%BC%EC%9E%90%EB%BD%91%EA%B8%B0</link>
            <guid>https://velog.io/@joohee_97124/%EC%BD%94%EB%93%9C%EC%97%856097-%EC%84%A4%ED%83%95%EA%B3%BC%EC%9E%90%EB%BD%91%EA%B8%B0</guid>
            <pubDate>Tue, 27 Dec 2022 01:12:30 GMT</pubDate>
            <description><![CDATA[<h3 id="문제">문제</h3>
<p><img src="https://velog.velcdn.com/images/joohee_97124/post/2a48a498-aaf2-4fe3-ae73-aac7510562d0/image.png" alt=""></p>
<h3 id="입력예시">입력예시</h3>
<pre><code class="language-python">5 5
3
2 0 1 1
3 1 2 3
4 1 2 5</code></pre>
<h3 id="출력예시">출력예시</h3>
<pre><code class="language-python">1 1 0 0 0
0 0 1 0 1
0 0 1 0 1
0 0 1 0 1
0 0 0 0 1</code></pre>
<h3 id="코드">코드</h3>
<pre><code class="language-python">#h세로 w가로
h,w = map(int,input().split())
#count막대개수
count = int(input())

graph=[ [0]* w for _ in range(h) ]
#print(graph)

for i in range(count):
    l,d,x,y = map(int,input().split())
    for j in range(l):
        if d==0:
            #print(&#39;j&#39;,j,&#39;y&#39;,y+j-1,&#39;x&#39;,x-1)
            graph[x-1][y+j-1]=1
        else:
            #print(&#39;j&#39;,j,&#39;y&#39;,y-1,&#39;x&#39;,x-j-1)
            graph[x+j-1][y-1]=1

for i in range(h):
    for j in range(w):
        print(graph[i][j] , end=&#39; &#39;)
    print()</code></pre>
<h3 id="주의">주의</h3>
<ul>
<li><strong>x가 가로 y가 세로</strong> 이다</li>
<li><strong>어디서 j를 넣어줘야하는지</strong> 자리를 잘 확인해야한다</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[코드업6096 바둑알 십자 뒤집기]]></title>
            <link>https://velog.io/@joohee_97124/%EC%BD%94%EB%93%9C%EC%97%856096-%EB%B0%94%EB%91%91%EC%95%8C-%EC%8B%AD%EC%9E%90-%EB%92%A4%EC%A7%91%EA%B8%B0</link>
            <guid>https://velog.io/@joohee_97124/%EC%BD%94%EB%93%9C%EC%97%856096-%EB%B0%94%EB%91%91%EC%95%8C-%EC%8B%AD%EC%9E%90-%EB%92%A4%EC%A7%91%EA%B8%B0</guid>
            <pubDate>Tue, 27 Dec 2022 01:06:52 GMT</pubDate>
            <description><![CDATA[<h3 id="문제">문제</h3>
<p><img src="https://velog.velcdn.com/images/joohee_97124/post/77826e9e-b8ee-4a79-b7e5-04461e48f6ef/image.png" alt=""></p>
<h3 id="입력예시">입력예시</h3>
<pre><code class="language-python">0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
2
10 10
12 12</code></pre>
<h3 id="출력예시">출력예시</h3>
<pre><code class="language-python">0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0</code></pre>
<h3 id="코드">코드</h3>
<pre><code class="language-python">graph= []
for i in range(19):
    graph.append(list(map(int,input().split())))

count = int(input())

where=[]    
for i in range(count):
  a = list(map(int,input().split()))
  where.append(a)

for i in range(count):
    n,m = where[i]
    for j in range(19):
        if graph[j][m-1] == 1: 
            graph[j][m-1] = 0 
        else:
            graph[j][m-1] = 1

        if graph[n-1][j] == 1:
            graph[n-1][j]=0
        else:
            graph[n-1][j]=1

for i in range(19):
    for j in range(19):
        print(graph[i][j], end=&#39; &#39;)
    print()</code></pre>
<h3 id="주의">주의</h3>
<ul>
<li><strong>x가 세로 y가 가로</strong> 이다</li>
<li><strong>어디서 -1 해줘야하는지</strong> 자리수를 잘 체크해줘야한다</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[코드업6095 바둑판에 흰돌놓기]]></title>
            <link>https://velog.io/@joohee_97124/%EC%BD%94%EB%93%9C%EC%97%856095-%EB%B0%94%EB%91%91%ED%8C%90%EC%97%90-%ED%9D%B0%EB%8F%8C%EB%86%93%EA%B8%B0</link>
            <guid>https://velog.io/@joohee_97124/%EC%BD%94%EB%93%9C%EC%97%856095-%EB%B0%94%EB%91%91%ED%8C%90%EC%97%90-%ED%9D%B0%EB%8F%8C%EB%86%93%EA%B8%B0</guid>
            <pubDate>Tue, 27 Dec 2022 01:03:03 GMT</pubDate>
            <description><![CDATA[<h3 id="문제">문제</h3>
<p><img src="https://velog.velcdn.com/images/joohee_97124/post/40e009b4-71f3-4a43-ba18-0444ccd3ba88/image.png" alt=""></p>
<h3 id="입력예시">입력예시</h3>
<pre><code class="language-python">5
1 1
2 2
3 3
4 4
5 5</code></pre>
<h3 id="출력예시">출력예시</h3>
<pre><code class="language-python">1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0</code></pre>
<h3 id="코드">코드</h3>
<pre><code class="language-python">count = int(input())
where=[]
graph=[[0] * 19 for _ in range(19)]
# print(graph)

for i in range(count):
    a,b = map(int,input().split())
    where.append((a,b))
# print(where)

for i in range(count):
    n,m=where[i]
    graph[n-1][m-1] = 1

for i in range (19):
    for j in range(19):
        print(graph[i][j], end=&#39; &#39;)
    print()</code></pre>
<h3 id="주의사항">주의사항</h3>
<p>- </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[팀결성 : 그래프]]></title>
            <link>https://velog.io/@joohee_97124/%ED%8C%80%EA%B2%B0%EC%84%B1-%EA%B7%B8%EB%9E%98%ED%94%84</link>
            <guid>https://velog.io/@joohee_97124/%ED%8C%80%EA%B2%B0%EC%84%B1-%EA%B7%B8%EB%9E%98%ED%94%84</guid>
            <pubDate>Mon, 19 Dec 2022 23:57:44 GMT</pubDate>
            <description><![CDATA[<h2 id="로직">로직</h2>
<p><em>같은 팀 여부 확인</em></p>
<ol>
<li>find 로직으로 각 학생의 루트노드 찾기<ul>
<li>루트노드가 아니라면 , 재귀적호출 ㄱㄱ</li>
</ul>
</li>
<li>루트노드가 같으면 YES , 아니면 NO 출력</li>
</ol>
<p><em>팀합치기</em> = union로직</p>
<ol>
<li><p>a,b를 각 a,b의 루트노드로 변수 할당 (find로직)</p>
</li>
<li><p>if a&lt;b → parent[a]=b</p>
<ul>
<li>아니면 반대로</li>
</ul>
</li>
<li><p>학생의 부모리스트 (→루트노드가 될) parent=[]</p>
<ul>
<li>부모리스트를 1...N(i) 으로 초기화</li>
</ul>
</li>
<li><p>N,M 입력받기 : N학생의수(=팀번호) , M연산횟수</p>
</li>
<li><p>M (for문) 번 돌면서 </p>
<ul>
<li>k,a,b  입력받기</li>
<li>if k 값이 0이면
 → 팀합치기</li>
<li>1이면
 → 같은 팀 여부 확인</li>
</ul>
</li>
</ol>
<pre><code class="language-python"># 팀찾기 (루트노드 찾기)
def team_find(x,parent):
  if parent[x] != x:
    parent[x] = team_find(parent[x],parent)
  return parent[x]

# 팀합치기
def team_union(a,b,parent):
  a = team_find(a,parent)
  b = team_find(b,parent)
  if a&lt;b:
    parent[b]=a
  else:
    parent[a]=b


n,m = map(int,input().split())
parent=[0] * (n+1)

# 부모 리스트 자기자신으로 초기화
for i in range(n+1):
  parent[i] = i

for i in range(m) :
  k,a,b = map(int,input().split())

  # 팀합치기
  if k==0 :
    team_union(a,b,parent)
  # 팀 확인하기
  else: 
    a = team_find(a,parent)
    b = team_find(b,parent)
    if a==b:
      print(&quot;YES&quot;)
    else:
      print(&quot;NO&quot;)
</code></pre>
<h3 id="주의사항">주의사항</h3>
<ul>
<li>find 로직 진행 시 → 재귀함수 호출 할 때 매개변수로 parent[x]를 줘야함
→ x를 그냥 주면 무한 재귀함수에 빠져벌임,,</li>
<li>부모 리스트를 자기자신으로 초기화 하기전 (i) → [0]*(n+1)로 초기화 해주는 과정이 꼭 필요하다</li>
<li>부모 리스트를 자기자신으로 초기화 할 때 0~(n+1) 까지 해주어야한다 → 문제에 제시되어있음</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[전보 : 최단경로]]></title>
            <link>https://velog.io/@joohee_97124/%EC%A0%84%EB%B3%B4-%EC%B5%9C%EB%8B%A8%EA%B2%BD%EB%A1%9C</link>
            <guid>https://velog.io/@joohee_97124/%EC%A0%84%EB%B3%B4-%EC%B5%9C%EB%8B%A8%EA%B2%BD%EB%A1%9C</guid>
            <pubDate>Tue, 13 Dec 2022 11:41:30 GMT</pubDate>
            <description><![CDATA[<h3 id="로직-플로이드워셜-이용-">로직 (플로이드워셜 이용 )</h3>
<ol>
<li>n,m,c 입력받기 : 도시개수 , 통로개수 , 도시</li>
<li>graph=[]<ul>
<li>무한으로 초기화</li>
<li>a,b가 같으면 0으로 초기화</li>
<li>x,y,z 입력받고 -&gt; garph에 넣어주기</li>
</ul>
</li>
<li>알고리즘 수행<ul>
<li>if graph[c][i] &lt; INF and graph[c][i]!=0 :
 count += 1</li>
<li>count : 도시 c 와 연결된 도시의 수</li>
<li>distance : 도시 c 와 연결된 도시 중 가장 긴 거리</li>
</ul>
</li>
<li>결과 출력</li>
</ol>
<h3 id="코드">코드</h3>
<pre><code class="language-python"># 1
n,m,c = map(int,input().split())

# 2
INF = int(1e9)
graph=[]
graph = [[INF] * (n+1) for _ in range(n+1)]

for a in range(n+1):
  for b in range(n+1):
    if a==b :
      graph[a][b]=0
      graph[b][a]=0

for i in range(m):
  x,y,z= map(int,input().split())
  graph[x][y] = z

# 3
count = 0
distance =0 

for b in range(n+1):
  if graph[c][b] &lt; INF and graph[c][b]!= 0 :
    # count : 연결된 도시의 수 (+1)
    count+=1
    # distance : 가장 먼 거리 출력하기
    distance = max(distance, graph[c][b])

print(count,distance)</code></pre>
<h3 id="주의사항">주의사항</h3>
<ul>
<li>플로이드 워셜 알고리즘을 이용했다</li>
<li><blockquote>
<p>N이 1000을 넘어가기에 시간복잡도에서 걸릴 수도 있다ㅜ</p>
</blockquote>
</li>
<li>count , distance  변수의 의미를 잘 보고 로직을 이용한다</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[미래도시 : 최단경로]]></title>
            <link>https://velog.io/@joohee_97124/%EB%AF%B8%EB%9E%98%EB%8F%84%EC%8B%9C-%EC%B5%9C%EB%8B%A8%EA%B2%BD%EB%A1%9C</link>
            <guid>https://velog.io/@joohee_97124/%EB%AF%B8%EB%9E%98%EB%8F%84%EC%8B%9C-%EC%B5%9C%EB%8B%A8%EA%B2%BD%EB%A1%9C</guid>
            <pubDate>Tue, 13 Dec 2022 10:24:57 GMT</pubDate>
            <description><![CDATA[<h3 id="로직-플로이드-워셜">로직 (플로이드 워셜)</h3>
<ol>
<li>N,M : 회사수 , 경로수 입력받기</li>
<li>graph=[] 2차원리스트 초기화<ul>
<li>자기자신 -&gt; 자기자신 0으로 초기화</li>
<li>a,b 입력받으면 1로 초기화</li>
</ul>
</li>
<li>x,k : 거쳐갈노드 , 최종목적지노드 입력받기</li>
<li>플로이드워셜 알고리즘 수행</li>
<li>결과 출력</li>
</ol>
<h3 id="코드">코드</h3>
<pre><code class="language-python">import sys
#input = sys.stdin.readline()

# 1
n,m = map(int,input().split())

# 2 
INF = int(1e9)
graph=[[INF]* (n+1) for _ in range(n+1)]
for a in range(1,n+1):
  for b in range(1,n+1):
    if a==b :
      graph[a][b]=0

for i in range (m):
  a,b = map(int,(input().split()))
  graph[a][b]=1
  graph[b][a]=1

# 3 잊지않고 입력받아주기
x,k = map(int,input().split())

# 4
for k in range(1,n+1):
  for a in range(1,n+1):
    for b in range(1,n+1):
      graph[a][b]= min(graph[a][b], graph[a][k]+graph[k][b])

# 거리에 대한 변수를 따로 만들어줘야 한다! 
distance = graph[1][k] + graph[k][x]

# 5
if distance &gt;= INF:
  print(-1)
else:
  print(distance)</code></pre>
<h3 id="주의사항">주의사항</h3>
<ul>
<li>플로이드 워셜 알고리즘을 이용</li>
<li>INF는int(1e9) 를 이용하여 무한으로 정의해주어야함</li>
<li>distance 거리에 대한 변수를 따로 만들어줘야한다! </li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[바닥공사 : 다이나믹 프로그래밍]]></title>
            <link>https://velog.io/@joohee_97124/%EB%B0%94%EB%8B%A5%EA%B3%B5%EC%82%AC-%EB%8B%A4%EC%9D%B4%EB%82%98%EB%AF%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D</link>
            <guid>https://velog.io/@joohee_97124/%EB%B0%94%EB%8B%A5%EA%B3%B5%EC%82%AC-%EB%8B%A4%EC%9D%B4%EB%82%98%EB%AF%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D</guid>
            <pubDate>Sun, 11 Dec 2022 09:36:32 GMT</pubDate>
            <description><![CDATA[<h3 id="점화식">&lt;&lt; 점화식 &gt;&gt;</h3>
<p>d[i] = d[i-1] + d[i-2]*2</p>
<ul>
<li>i-1 : 2x1 하나의 경우만 있음</li>
<li>i-2 : 2x2 / 1x2(2) -&gt; 2개의 경우가 있음</li>
</ul>
<h3 id="로직">로직</h3>
<ol>
<li>N 입력받기</li>
<li>크기가 1001 인 d를 0으로 초기화</li>
<li>d[1] = 1
d[2] = 3</li>
<li>for i in range(3,N+1):<br>점화식사용</li>
</ol>
<h3 id="코드">코드</h3>
<pre><code class="language-pytonh">N = int(input())
d = [0] * 1001

d[1]=1
d[2]=3

for i in range(3,N+1):
  d[i] = (d[i-1] + d[i-2]*2)%796796

print(d[N])</code></pre>
<h3 id="주의할점">주의할점</h3>
<ul>
<li>점화식을 떠올리는 것이 쉽지 않다,,,</li>
<li><blockquote>
<p>그림을 그리면서 해볼 것 ! </p>
</blockquote>
</li>
<li>for문 시작점이 3인 것을 주의하자 !</li>
<li><blockquote>
<p>1과 2는 이미 정의해주었기 때문</p>
</blockquote>
</li>
<li><blockquote>
<p>d[0]은 0으로 초기화해둔 그대로 둔다 </p>
</blockquote>
</li>
</ul>
]]></description>
        </item>
    </channel>
</rss>