<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>ZlLl.log</title>
        <link>https://velog.io/</link>
        <description>JinHeeeKang.github.io 쓰다가 불편해서...</description>
        <lastBuildDate>Fri, 19 Nov 2021 07:42:44 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>ZlLl.log</title>
            <url>https://images.velog.io/images/jinheeekang_99/profile/b09cdcb6-3d37-40a2-8a56-2c3277d1ee46/social.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. ZlLl.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/jinheeekang_99" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[프로그래머스]오픈채팅방]]></title>
            <link>https://velog.io/@jinheeekang_99/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4%EC%98%A4%ED%94%88%EC%B1%84%ED%8C%85%EB%B0%A9</link>
            <guid>https://velog.io/@jinheeekang_99/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4%EC%98%A4%ED%94%88%EC%B1%84%ED%8C%85%EB%B0%A9</guid>
            <pubDate>Fri, 19 Nov 2021 07:42:44 GMT</pubDate>
            <description><![CDATA[<p>카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다.</p>
<p>신입사원인 김크루는 카카오톡 오픈 채팅방을 개설한 사람을 위해, 다양한 사람들이 들어오고, 나가는 것을 지켜볼 수 있는 관리자창을 만들기로 했다. 채팅방에 누군가 들어오면 다음 메시지가 출력된다.</p>
<p>&quot;[닉네임]님이 들어왔습니다.&quot;</p>
<p>채팅방에서 누군가 나가면 다음 메시지가 출력된다.</p>
<p>&quot;[닉네임]님이 나갔습니다.&quot;</p>
<p>채팅방에서 닉네임을 변경하는 방법은 다음과 같이 두 가지이다.
1.채팅방을 나간 후, 새로운 닉네임으로 다시 들어간다.
2.채팅방에서 닉네임을 변경한다.</p>
<p>닉네임을 변경할 때는 기존에 채팅방에 출력되어 있던 메시지의 닉네임도 전부 변경된다.</p>
<p>예를 들어, 채팅방에 &quot;Muzi&quot;와 &quot;Prodo&quot;라는 닉네임을 사용하는 사람이 순서대로 들어오면 채팅방에는 다음과 같이 메시지가 출력된다.</p>
<p>&quot;Muzi님이 들어왔습니다.&quot;
&quot;Prodo님이 들어왔습니다.&quot;</p>
<p>채팅방에 있던 사람이 나가면 채팅방에는 다음과 같이 메시지가 남는다.</p>
<p>&quot;Muzi님이 들어왔습니다.&quot;
&quot;Prodo님이 들어왔습니다.&quot;
&quot;Muzi님이 나갔습니다.&quot;</p>
<p>Muzi가 나간후 다시 들어올 때, Prodo 라는 닉네임으로 들어올 경우 기존에 채팅방에 남아있던 Muzi도 Prodo로 다음과 같이 변경된다.</p>
<p>&quot;Prodo님이 들어왔습니다.&quot;
&quot;Prodo님이 들어왔습니다.&quot;
&quot;Prodo님이 나갔습니다.&quot;
&quot;Prodo님이 들어왔습니다.&quot;</p>
<p>채팅방은 중복 닉네임을 허용하기 때문에, 현재 채팅방에는 Prodo라는 닉네임을 사용하는 사람이 두 명이 있다. 이제, 채팅방에 두 번째로 들어왔던 Prodo가 Ryan으로 닉네임을 변경하면 채팅방 메시지는 다음과 같이 변경된다.</p>
<p>&quot;Prodo님이 들어왔습니다.&quot;
&quot;Ryan님이 들어왔습니다.&quot;
&quot;Prodo님이 나갔습니다.&quot;
&quot;Prodo님이 들어왔습니다.&quot;</p>
<p>채팅방에 들어오고 나가거나, 닉네임을 변경한 기록이 담긴 문자열 배열 record가 매개변수로 주어질 때, 모든 기록이 처리된 후, 최종적으로 방을 개설한 사람이 보게 되는 메시지를 문자열 배열 형태로 return 하도록 solution 함수를 완성하라.</p>
<p><strong>입출력 예</strong>
record    result
[&quot;Enter uid1234 Muzi&quot;, &quot;Enter uid4567 Prodo&quot;,&quot;Leave uid1234&quot;,&quot;Enter uid1234 Prodo&quot;,&quot;Change uid4567 Ryan&quot;]    [&quot;Prodo님이 들어왔습니다.&quot;, &quot;Ryan님이 들어왔습니다.&quot;, &quot;Prodo님이 나갔습니다.&quot;, &quot;Prodo님이 들어왔습니다.&quot;]</p>
<pre><code>def solution(record):#Enter,Leave,Change
    answer = []
    user=dict()
    acting={&quot;Enter&quot;:&quot;님이 들어왔습니다.&quot;,&quot;Leave&quot;:&quot;님이 나갔습니다.&quot;}

    for i in record:
        result=&quot;&quot;
        rec=i.split()
        act=rec[0]
        id=rec[1]

        if act != &quot;Leave&quot;:
            nickname=rec[2]
            user[id]=nickname
            if act == &quot;Change&quot;:
                user[id]=nickname
            else:#Enter
                result+= id+acting[&quot;Enter&quot;]
                answer.append(result) 
        else:#Leave
            result+= id+acting[&quot;Leave&quot;]
            answer.append(result) 


    for i in range(len(answer)):
        final_id=answer[i].split(&#39;님&#39;)[0]
        answer[i]=answer[i].replace(final_id,user[final_id])

    return answer</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[[프로그래머스]기능개발]]></title>
            <link>https://velog.io/@jinheeekang_99/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4%EA%B8%B0%EB%8A%A5%EA%B0%9C%EB%B0%9C</link>
            <guid>https://velog.io/@jinheeekang_99/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4%EA%B8%B0%EB%8A%A5%EA%B0%9C%EB%B0%9C</guid>
            <pubDate>Fri, 19 Nov 2021 06:05:13 GMT</pubDate>
            <description><![CDATA[<p><strong>문제 설명</strong>
프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다.</p>
<p>또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다.</p>
<p>먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요.</p>
<p><strong>제한 사항</strong>
-작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다.
-작업 진도는 100 미만의 자연수입니다.
-작업 속도는 100 이하의 자연수입니다.
-배포는 하루에 한 번만 할 수 있으며, 하루의 끝에 이루어진다고 가정합니다. 예를 들어 진도율이 95%인 작업의 개발 속도가 하루에 4%라면 배포는 2일 뒤에 이루어집니다.</p>
<p><strong>입출력 예</strong>
progresses    speeds    return
[93, 30, 55]    [1, 30, 5]    [2, 1]
[95, 90, 99, 99, 80, 99]    [1, 1, 1, 1, 1, 1]    [1, 3, 2]</p>
<p><strong>입출력 예 #1</strong>
첫 번째 기능은 93% 완료되어 있고 하루에 1%씩 작업이 가능하므로 7일간 작업 후 배포가 가능합니다.
두 번째 기능은 30%가 완료되어 있고 하루에 30%씩 작업이 가능하므로 3일간 작업 후 배포가 가능합니다. 하지만 이전 첫 번째 기능이 아직 완성된 상태가 아니기 때문에 첫 번째 기능이 배포되는 7일째 배포됩니다.
세 번째 기능은 55%가 완료되어 있고 하루에 5%씩 작업이 가능하므로 9일간 작업 후 배포가 가능합니다.</p>
<p>따라서 7일째에 2개의 기능, 9일째에 1개의 기능이 배포됩니다.</p>
<p><strong>입출력 예 #2</strong>
모든 기능이 하루에 1%씩 작업이 가능하므로, 작업이 끝나기까지 남은 일수는 각각 5일, 10일, 1일, 1일, 20일, 1일입니다. 어떤 기능이 먼저 완성되었더라도 앞에 있는 모든 기능이 완성되지 않으면 배포가 불가능합니다.</p>
<p>따라서 5일째에 1개의 기능, 10일째에 3개의 기능, 20일째에 2개의 기능이 배포됩니다.</p>
<pre><code>def solution(progresses, speeds):
    answer = []
    time=[]

    for i in range(len(progresses)):
        remain=100-progresses[i]
        div=remain/speeds[i]

        #정수부분이 짝수일때 round()는 소수 부분을 그냥 날려버림
        if round(div) %2==0 and div&gt;round(div):
            div=round(div)+1
        else:
            div=round(div)

        time.append(div)#progresses 당 걸리는 시간

    for i in range(len(time)):
        count=1
        for j in range(i+1,len(time)):
            if time[i]&gt;=time[j]:# 1,2,4,5 실패해서 = 추가함
                count+=1
                time[j]=0#이거 때문인가 싶어서 -1로 바꿔봐도 똑같음
            else:
                break

        if time[i] ==0:
            pass
        else:
            answer.append(count)





    return answer</code></pre><p>좀 별로긴한데 언제 풀어도 그때 생각나는대로 하게 될테니까 걍..</p>
<p>처음엔 1,2,4,5 케이스 실패가 나왔다 그래서</p>
<p>[99, 99, 99][1, 1, 1][3] 테스트케이스 추가 해보고 코드 수정함</p>
<p>2번만 또실패
테스트케이스 추가
    1.    [20, 99, 93, 30, 55, 10], [5, 10, 1, 1, 30, 5], [3, 3]
    2.    [96, 99, 98, 97], [1, 1, 1, 1], [4]
    3.    [40, 93, 30, 55, 60, 65], [60, 1, 30, 5, 10, 7], [1, 2, 3]
    4.    [93, 30, 55, 60, 40, 65], [1, 30, 5, 10, 60, 7], [2, 4]</p>
<p>2차 테스트케이스 추가
[5, 5, 5], [21, 25, 20] [3]</p>
<p>위에 추가한 테스트 케이스는 다 성공한다 
근데 제출만 하면 테스트 케이스 2가 안맞는다 휴</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[프로그래머스] 음양더하기]]></title>
            <link>https://velog.io/@jinheeekang_99/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%9D%8C%EC%96%91%EB%8D%94%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@jinheeekang_99/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%9D%8C%EC%96%91%EB%8D%94%ED%95%98%EA%B8%B0</guid>
            <pubDate>Fri, 19 Nov 2021 04:52:45 GMT</pubDate>
            <description><![CDATA[<p><strong>문제 설명</strong>
어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.</p>
<p><strong>제한사항</strong></p>
<ul>
<li>absolutes의 길이는 1 이상 1,000 이하입니다.</li>
<li>absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.</li>
<li>signs의 길이는 absolutes의 길이와 같습니다.</li>
<li>signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다.</li>
</ul>
<p><strong>입출력 예</strong>
absolutes    signs    result
[4,7,12]    [true,false,true]    9
[1,2,3]    [false,false,true]    0</p>
<pre><code>def solution(absolutes, signs):
    answer = 0
    for i in range(len(absolutes)):
        if signs[i]:
            answer += absolutes[i]
        else:
            answer += -absolutes[i]
    return answer</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[[프로그래머스] 폰켓몬]]></title>
            <link>https://velog.io/@jinheeekang_99/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%ED%8F%B0%EC%BC%93%EB%AA%AC</link>
            <guid>https://velog.io/@jinheeekang_99/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%ED%8F%B0%EC%BC%93%EB%AA%AC</guid>
            <pubDate>Fri, 19 Nov 2021 02:32:42 GMT</pubDate>
            <description><![CDATA[<p><strong>문제 설명</strong>
당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.
홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다.</p>
<p>1.첫 번째(3번), 두 번째(1번) 폰켓몬을 선택
2.첫 번째(3번), 세 번째(2번) 폰켓몬을 선택
3.첫 번째(3번), 네 번째(3번) 폰켓몬을 선택
4.두 번째(1번), 세 번째(2번) 폰켓몬을 선택
5.두 번째(1번), 네 번째(3번) 폰켓몬을 선택
6.세 번째(2번), 네 번째(3번) 폰켓몬을 선택</p>
<p>이때, 첫 번째(3번) 폰켓몬과 네 번째(3번) 폰켓몬을 선택하는 방법은 한 종류(3번 폰켓몬 두 마리)의 폰켓몬만 가질 수 있지만, 다른 방법들은 모두 두 종류의 폰켓몬을 가질 수 있습니다. 따라서 위 예시에서 가질 수 있는 폰켓몬 종류 수의 최댓값은 2가 됩니다.
당신은 최대한 다양한 종류의 폰켓몬을 가지길 원하기 때문에, 최대한 많은 종류의 폰켓몬을 포함해서 N/2마리를 선택하려 합니다. N마리 폰켓몬의 종류 번호가 담긴 배열 nums가 매개변수로 주어질 때, N/2마리의 폰켓몬을 선택하는 방법 중, 가장 많은 종류의 폰켓몬을 선택하는 방법을 찾아, 그때의 폰켓몬 종류 번호의 개수를 return 하도록 solution 함수를 완성해주세요.</p>
<pre><code>def solution(nums):

    max=int(len(nums)/2)
    min=len(set(nums))

    answer = min
    if max&lt;min:
        answer = max
    return answer</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[[프로그래머스]로또의 최고 순위와 최저 순위]]></title>
            <link>https://velog.io/@jinheeekang_99/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4%EB%A1%9C%EB%98%90%EC%9D%98-%EC%B5%9C%EA%B3%A0-%EC%88%9C%EC%9C%84%EC%99%80-%EC%B5%9C%EC%A0%80-%EC%88%9C%EC%9C%84</link>
            <guid>https://velog.io/@jinheeekang_99/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4%EB%A1%9C%EB%98%90%EC%9D%98-%EC%B5%9C%EA%B3%A0-%EC%88%9C%EC%9C%84%EC%99%80-%EC%B5%9C%EC%A0%80-%EC%88%9C%EC%9C%84</guid>
            <pubDate>Thu, 18 Nov 2021 08:45:48 GMT</pubDate>
            <description><![CDATA[<p><strong>문제 설명</strong>
로또 6/45(이하 &#39;로또&#39;로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다.</p>
<p>로또를 구매한 민우는 당첨 번호 발표일을 학수고대하고 있었습니다. 하지만, 민우의 동생이 로또에 낙서를 하여, 일부 번호를 알아볼 수 없게 되었습니다. 당첨 번호 발표 후, 민우는 자신이 구매했던 로또로 당첨이 가능했던 최고 순위와 최저 순위를 알아보고 싶어 졌습니다.
알아볼 수 없는 번호를 0으로 표기하기로 하고, 민우가 구매한 로또 번호 6개가 44, 1, 0, 0, 31 25라고 가정해보겠습니다. 당첨 번호 6개가 31, 10, 45, 1, 6, 19라면, 당첨 가능한 최고 순위와 최저 순위의 한 예는 아래와 같습니다.</p>
<p>민우가 구매한 로또 번호를 담은 배열 lottos, 당첨 번호를 담은 배열 win_nums가 매개변수로 주어집니다. 이때, 당첨 가능한 최고 순위와 최저 순위를 차례대로 배열에 담아서 return 하도록 solution 함수를 완성해주세요.</p>
<p>순위    당첨 내용
1    6개 번호가 모두 일치
2    5개 번호가 일치
3    4개 번호가 일치
4    3개 번호가 일치
5    2개 번호가 일치
6(낙첨)    그 외</p>
<p><strong>입출력 예</strong>
lottos    win_nums    result
[44, 1, 0, 0, 31, 25]    [31, 10, 45, 1, 6, 19]    [3, 5]</p>
<p>[0, 0, 0, 0, 0, 0]    [38, 19, 20, 40, 15, 25]    [1, 6]</p>
<p>[45, 4, 35, 20, 3, 9]    [20, 9, 3, 45, 4, 35]    [1, 1]</p>
<pre><code>def solution(lottos, win_nums):

    zero=lottos.count(0)
    lottos=set(lottos)

    if 0 in lottos:
        lottos.remove(0)

    #당첨 내용
    gyo=lottos-set(win_nums)
    if zero==0 and gyo==6:#0도 없고 하나도 안겹치는경우
        min=0
        max=0

    min=6-zero-len(gyo)
    max=min+zero

    if zero ==0 and gyo==0:#0도 없고 다 겹치는 경우
        min=6



    #순위
    score={6:1,5:2,4:3,3:4,2:5,1:6,0:6}
    answer=[score[max],score[min]]

    return answer</code></pre><p>뭔가 처음 딱 문제를 보고선 이렇게 저렇게 하면 되겠다 생각이 들어서 했는데
막상 짜다가 뒤죽박죽 된거같다 집중이 잘 안되서 그런가 담에 다시 정리해야지,,</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[프로그래머스] 신규아이디추천]]></title>
            <link>https://velog.io/@jinheeekang_99/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%8B%A0%EA%B7%9C%EC%95%84%EC%9D%B4%EB%94%94%EC%B6%94%EC%B2%9C</link>
            <guid>https://velog.io/@jinheeekang_99/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%8B%A0%EA%B7%9C%EC%95%84%EC%9D%B4%EB%94%94%EC%B6%94%EC%B2%9C</guid>
            <pubDate>Thu, 18 Nov 2021 05:54:49 GMT</pubDate>
            <description><![CDATA[<p><strong>문제 설명</strong>
카카오에 입사한 신입 개발자 네오는 &quot;카카오계정개발팀&quot;에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. &quot;네오&quot;에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다.
다음은 카카오 아이디의 규칙입니다.</p>
<ul>
<li>아이디의 길이는 3자 이상 15자 이하여야 합니다.</li>
<li>아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다.</li>
<li>단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다.
&quot;네오&quot;는 다음과 같이 7단계의 순차적인 처리 과정을 통해 신규 유저가 입력한 아이디가 카카오 아이디 규칙에 맞는 지 검사하고 규칙에 맞지 않은 경우 규칙에 맞는 새로운 아이디를 추천해 주려고 합니다.
신규 유저가 입력한 아이디가 new_id 라고 한다면,</li>
</ul>
<p><strong>상세규칙</strong>
1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다.
2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다.
3단계 new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다.
4단계 new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다.
5단계 new_id가 빈 문자열이라면, new_id에 &quot;a&quot;를 대입합니다.
6단계 new_id의 길이가 16자 이상이면, new_id의 첫 15개의 문자를 제외한 나머지 문자들을 모두 제거합니다. 만약 제거 후 마침표(.)가 new_id의 끝에 위치한다면 끝에 위치한 마침표(.) 문자를 제거합니다.
7단계 new_id의 길이가 2자 이하라면, new_id의 마지막 문자를 new_id의 길이가 3이 될 때까지 반복해서 끝에 붙입니다.</p>
<pre><code>import re
def solution(new_id):

    new_id=new_id.lower()#1
    new_id = re.sub(&quot;[^a-z0-9-_.]&quot;,&quot;&quot;,new_id)#2
    new_id= re.sub(&#39;[..]+&#39;,&#39;.&#39;,new_id)#3
    new_id = new_id.strip(&#39;.&#39;)#4


    if len(new_id)==0:#5
        new_id=&quot;a&quot;
    if len(new_id)&gt;15:#6
        new_id=new_id[:15]
        if new_id[-1]==&#39;.&#39;:
            new_id=new_id.rstrip(&#39;.&#39;)
    if len(new_id)&lt;3:#7
        while(len(new_id)&lt;3):
            new_id = new_id + new_id[-1]


    return new_id</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[[프로그래머스 Summer/Winter Coding(~2018) ]영어 끝말잇기
]]></title>
            <link>https://velog.io/@jinheeekang_99/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-SummerWinter-Coding2018-%EC%98%81%EC%96%B4-%EB%81%9D%EB%A7%90%EC%9E%87%EA%B8%B0</link>
            <guid>https://velog.io/@jinheeekang_99/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-SummerWinter-Coding2018-%EC%98%81%EC%96%B4-%EB%81%9D%EB%A7%90%EC%9E%87%EA%B8%B0</guid>
            <pubDate>Sat, 08 May 2021 16:44:13 GMT</pubDate>
            <description><![CDATA[<h2 id="문제">문제</h2>
<h4 id="문제링크"><a href="https://programmers.co.kr/learn/courses/30/lessons/12981#">문제링크</a></h4>
<p><img src="https://images.velog.io/images/jinheeekang_99/post/5ceade3f-9503-458b-9730-9f4587184cc6/screenshot.png" alt=""></p>
<p><img src="https://images.velog.io/images/jinheeekang_99/post/b4c4cae2-3c74-4753-a8cc-bf5d567116ad/screenshot.png" alt=""></p>
<p><img src="https://images.velog.io/images/jinheeekang_99/post/be350c3d-ff2a-4e44-aea7-e7d6947fdc7c/screenshot.png" alt=""></p>
<p><img src="https://images.velog.io/images/jinheeekang_99/post/c40464f2-5f60-4584-8672-27e1b490d3a3/screenshot.png" alt=""></p>
<p><img src="https://images.velog.io/images/jinheeekang_99/post/a6cb5a1f-cdfc-4ca2-a837-b53096ebc241/screenshot.png" alt=""></p>
<h2 id="풀이">풀이</h2>
<pre><code>def solution(n, words):
    answer = [0,0]
    for w in range(0,len(words)):
        if (words[w] in words[0:w]) or (w&gt;0 and (words[w][0]!=words[w-1][-1])): 
            w=w+1
            if (w%n)==0:
                answer[0]=(w%n)+n
                answer[1]=int(w/n)
                break
            else:
                answer[0]=(w%n)
                answer[1]=int(w/n)+1
                break

    return answer</code></pre><h2 id="오류-발생시-추가-테스트-케이스">오류 발생시 추가 테스트 케이스</h2>
<ul>
<li>2,[&quot;land&quot;, &quot;dream&quot;, &quot;mom&quot;, &quot;mom&quot;, &quot;ror&quot;],[2,2]</li>
<li>2,[&quot;land&quot;, &quot;dream&quot;, &quot;mom&quot;, &quot;mom&quot;],[2,2]</li>
</ul>
<p>출처: 프로그래머스</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[프로그래머스 Summer/Winter Coding(~2018) ] 방문 길이]]></title>
            <link>https://velog.io/@jinheeekang_99/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-SummerWinter-Coding2018-%EB%B0%A9%EB%AC%B8-%EA%B8%B8%EC%9D%B4</link>
            <guid>https://velog.io/@jinheeekang_99/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-SummerWinter-Coding2018-%EB%B0%A9%EB%AC%B8-%EA%B8%B8%EC%9D%B4</guid>
            <pubDate>Sat, 08 May 2021 09:16:07 GMT</pubDate>
            <description><![CDATA[<h2 id="문제">문제</h2>
<p><a href="https://programmers.co.kr/learn/courses/30/lessons/49994">문제 링크</a></p>
<p><img src="https://images.velog.io/images/jinheeekang_99/post/77e046fd-ed3a-4140-8126-384d9afcb3c9/screenshot.png" alt=""></p>
<p><img src="https://images.velog.io/images/jinheeekang_99/post/cdf09eb9-db1b-4b4d-977a-7b27b1f3ae7c/screenshot.png" alt=""></p>
<p><img src="https://images.velog.io/images/jinheeekang_99/post/806eebe2-8cc6-4708-a333-4d0f32777052/screenshot.png" alt=""></p>
<p><img src="https://images.velog.io/images/jinheeekang_99/post/aa8fba10-850b-410e-825c-1f1e9d118500/screenshot.png" alt=""></p>
<h2 id="풀이">풀이</h2>
<pre><code>def solution(dirs):
    answer=&#39;&#39;
    move = {&#39;U&#39;: (0, 1), &#39;D&#39;: (0, -1), &#39;R&#39;: (1, 0), &#39;L&#39;: (-1, 0)}
    visited = set()
    x, y = 0, 0 
    for command in dirs:
        dx, dy = move[command]
        nx, ny = x + dx, y + dy
        if nx&lt;-5:
            nx=-5
        elif ny&lt;-5:
            ny=-5
        elif nx&gt;5:
            nx=5
        elif ny&gt;5:
            ny=5
        go = (x, y, nx, ny)
        back=(nx, ny,x, y)
        x, y = nx, ny   # move position

        if go[0]==go[2] and go[1]==go[3]:
            continue
        else:
            visited.add(go)
        if back in visited:
            visited.remove(back)

    return len(visited)</code></pre><p>출처: 프로그래머스</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[프로그래머스 Summer/Winter Coding(~2018) ] 예산
]]></title>
            <link>https://velog.io/@jinheeekang_99/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-SummerWinter-Coding2018-%EC%98%88%EC%82%B0</link>
            <guid>https://velog.io/@jinheeekang_99/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-SummerWinter-Coding2018-%EC%98%88%EC%82%B0</guid>
            <pubDate>Sat, 08 May 2021 09:06:08 GMT</pubDate>
            <description><![CDATA[<h2 id="문제">문제</h2>
<h4 id="문제-링크"><a href="https://programmers.co.kr/learn/courses/30/lessons/12982">문제 링크</a></h4>
<p><img src="https://images.velog.io/images/jinheeekang_99/post/8b2e40cd-b959-41e7-8d61-8393dfbfc1bc/screenshot.png" alt=""></p>
<p><img src="https://images.velog.io/images/jinheeekang_99/post/1a74d092-37ee-4c0b-936d-27ef812faf5f/screenshot.png" alt=""></p>
<p><img src="https://images.velog.io/images/jinheeekang_99/post/31a0efbc-1e3a-43b8-bf69-3e0344c0004f/screenshot.png" alt=""></p>
<h2 id="풀이">풀이</h2>
<pre><code>def solution(d, budget):
    d.sort()
    while sum(d)&gt;budget:
        d.pop()
    return len(d)</code></pre><p>출처: 프로그래머스</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[프로그래머스 Summer/Winter Coding(~2018)
] 소수 만들기
]]></title>
            <link>https://velog.io/@jinheeekang_99/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-SummerWinter-Coding2018-%EC%86%8C%EC%88%98-%EB%A7%8C%EB%93%A4%EA%B8%B0</link>
            <guid>https://velog.io/@jinheeekang_99/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-SummerWinter-Coding2018-%EC%86%8C%EC%88%98-%EB%A7%8C%EB%93%A4%EA%B8%B0</guid>
            <pubDate>Sat, 08 May 2021 08:48:36 GMT</pubDate>
            <description><![CDATA[<h2 id="문제">문제</h2>
<h4 id="문제-링크"><a href="https://programmers.co.kr/learn/courses/30/lessons/12977?language=python3">문제 링크</a></h4>
<p><img src="https://images.velog.io/images/jinheeekang_99/post/da70d415-2090-49f5-b7b3-e9fc5b9fca9d/screenshot.png" alt=""></p>
<h2 id="코드">코드</h2>
<pre><code>from itertools import combinations #조합
import math

def is_prime(n):
    for i in range(2,int(math.sqrt(n)) + 1): #제곱근까지
        if n%i==0:
            return True

    return  False   



def solution(nums):
    answer = 0  
    com=list(map(lambda x:sum(x),list(combinations(nums,3)))) 
    #3개 조합된 수의 합을 바로 리스트로
    for i in com:
        if is_prime_number(i) is False: #소수인 경우
            answer+=1

    return answer</code></pre><p>출처: 프로그래머스</p>
]]></description>
        </item>
    </channel>
</rss>