<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.5">Jekyll</generator><link href="https://daramggi.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://daramggi.github.io/" rel="alternate" type="text/html" /><updated>2024-07-14T12:36:30+09:00</updated><id>https://daramggi.github.io/feed.xml</id><title type="html">나만의 블로그</title><subtitle>재환의 블로그 입니다.</subtitle><author><name>JaeHwan</name><email>jelly0379@gmail.com</email></author><entry><title type="html">프로젝트)카카오, 네이버 로그인시 db저장</title><link href="https://daramggi.github.io/coding/Programmers-Basic(D6)/" rel="alternate" type="text/html" title="프로젝트)카카오, 네이버 로그인시 db저장" /><published>2024-07-13T00:00:00+09:00</published><updated>2024-07-13T00:00:00+09:00</updated><id>https://daramggi.github.io/coding/Programmers-Basic(D6)</id><content type="html" xml:base="https://daramggi.github.io/coding/Programmers-Basic(D6)/"><![CDATA[]]></content><author><name>JaeHwan</name><email>jelly0379@gmail.com</email></author><category term="coding" /><category term="blog" /><category term="백준" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">Mypageupdate</title><link href="https://daramggi.github.io/mypageUpdate/" rel="alternate" type="text/html" title="Mypageupdate" /><published>2024-07-10T00:00:00+09:00</published><updated>2024-07-10T00:00:00+09:00</updated><id>https://daramggi.github.io/mypageUpdate</id><content type="html" xml:base="https://daramggi.github.io/mypageUpdate/"><![CDATA[<p>옵션</p>

<hr />

<p>색깔</p>

<hr />

<p>검정</p>

<p>파랑</p>

<p>노랑</p>

<hr />

<h1 id="마지막-두-원소">마지막 두 원소</h1>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="kt">int</span><span class="o">[]</span> <span class="nf">solution</span><span class="o">(</span><span class="kt">int</span><span class="o">[]</span> <span class="n">num_list</span><span class="o">)</span> <span class="o">{</span>
        
        <span class="kt">int</span> <span class="n">length</span> <span class="o">=</span> <span class="n">num_list</span><span class="o">.</span><span class="na">length</span><span class="o">;</span>

        <span class="kt">int</span> <span class="n">last_num</span> <span class="o">=</span> <span class="n">num_list</span><span class="o">[</span><span class="n">length</span> <span class="o">-</span> <span class="mi">1</span><span class="o">];</span>

        <span class="kt">int</span> <span class="n">second_last_num</span> <span class="o">=</span> <span class="n">num_list</span><span class="o">[</span><span class="n">length</span><span class="o">-</span><span class="mi">2</span><span class="o">];</span>

        <span class="kt">int</span> <span class="n">num</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>

        <span class="k">if</span><span class="o">(</span><span class="n">last_num</span> <span class="o">&gt;</span> <span class="n">second_last_num</span><span class="o">){</span>
            <span class="n">num</span> <span class="o">=</span> <span class="o">(</span><span class="n">last_num</span> <span class="o">-</span> <span class="n">second_last_num</span><span class="o">);</span>
        <span class="o">}</span><span class="k">else</span><span class="o">{</span>
            <span class="n">num</span> <span class="o">=</span> <span class="o">(</span><span class="n">last_num</span> <span class="o">*</span> <span class="mi">2</span><span class="o">);</span>
        <span class="o">}</span>

        <span class="kt">int</span><span class="o">[]</span> <span class="n">answer</span> <span class="o">=</span> <span class="k">new</span> <span class="kt">int</span><span class="o">[</span><span class="n">num_list</span><span class="o">.</span><span class="na">length</span> <span class="o">+</span> <span class="mi">1</span><span class="o">];</span>
        <span class="k">for</span><span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">num_list</span><span class="o">.</span><span class="na">length</span><span class="o">;</span> <span class="n">i</span><span class="o">++){</span>
            <span class="n">answer</span><span class="o">[</span><span class="n">i</span><span class="o">]</span> <span class="o">=</span> <span class="n">num_list</span><span class="o">[</span><span class="n">i</span><span class="o">];</span>
        <span class="o">}</span>
        <span class="n">answer</span><span class="o">[</span><span class="n">answer</span><span class="o">.</span><span class="na">length</span> <span class="o">-</span> <span class="mi">1</span><span class="o">]</span> <span class="o">=</span> <span class="n">num</span><span class="o">;</span>
        <span class="k">return</span> <span class="n">answer</span><span class="o">;</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<p>마지막 숫자와 마지막 전숫자를 담을 int를 만들고 if문으로 마지막 전숫자가 클시 “-“를 하여 구분해서 아닐시에는 “*2”를 하였다</p>

<p>이후 answer배열에는 num_list의 배열의 수 +1을 증가시켜 마지막 num값을 넣을 공간을 만들어 주었고</p>

<p>for문으로 num_list를 먼저 넣고 이후 num을 마지막에 넣어 주었다.</p>

<h1 id="수-조작하기-1">수 조작하기 1</h1>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="kt">int</span> <span class="nf">solution</span><span class="o">(</span><span class="kt">int</span> <span class="n">n</span><span class="o">,</span> <span class="nc">String</span> <span class="n">control</span><span class="o">)</span> <span class="o">{</span>
        <span class="kt">int</span> <span class="n">answer</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
        <span class="kt">char</span><span class="o">[]</span> <span class="n">chararr</span> <span class="o">=</span> <span class="n">control</span><span class="o">.</span><span class="na">toCharArray</span><span class="o">();</span>

        <span class="k">for</span><span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">chararr</span><span class="o">.</span><span class="na">length</span><span class="o">;</span> <span class="n">i</span><span class="o">++){</span>
            <span class="k">if</span><span class="o">(</span><span class="n">chararr</span><span class="o">[</span><span class="n">i</span><span class="o">]</span> <span class="o">==</span> <span class="sc">'w'</span><span class="o">){</span>
                <span class="n">n</span> <span class="o">+=</span> <span class="mi">1</span><span class="o">;</span>
            <span class="o">}</span><span class="k">else</span> <span class="k">if</span><span class="o">(</span><span class="n">chararr</span><span class="o">[</span><span class="n">i</span><span class="o">]</span> <span class="o">==</span> <span class="sc">'s'</span><span class="o">){</span>
                <span class="n">n</span> <span class="o">+=</span> <span class="o">-</span><span class="mi">1</span><span class="o">;</span>
            <span class="o">}</span><span class="k">else</span> <span class="k">if</span><span class="o">(</span><span class="n">chararr</span><span class="o">[</span><span class="n">i</span><span class="o">]</span> <span class="o">==</span> <span class="sc">'d'</span><span class="o">){</span>
                <span class="n">n</span> <span class="o">+=</span> <span class="mi">10</span><span class="o">;</span>
            <span class="o">}</span><span class="k">else</span> <span class="k">if</span><span class="o">(</span><span class="n">chararr</span><span class="o">[</span><span class="n">i</span><span class="o">]</span> <span class="o">==</span> <span class="sc">'a'</span><span class="o">){</span>
                <span class="n">n</span> <span class="o">+=</span> <span class="o">-</span><span class="mi">10</span><span class="o">;</span>
            <span class="o">}</span>
        <span class="o">}</span>
        <span class="n">answer</span> <span class="o">=</span> <span class="n">n</span><span class="o">;</span>
        <span class="k">return</span> <span class="n">answer</span><span class="o">;</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<p>다른 사람 풀이</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="kt">int</span> <span class="nf">solution</span><span class="o">(</span><span class="kt">int</span> <span class="n">n</span><span class="o">,</span> <span class="nc">String</span> <span class="n">control</span><span class="o">)</span> <span class="o">{</span>
        <span class="kt">int</span> <span class="n">answer</span> <span class="o">=</span> <span class="n">n</span><span class="o">;</span>

        <span class="k">for</span><span class="o">(</span><span class="kt">char</span> <span class="n">ch</span> <span class="o">:</span> <span class="n">control</span><span class="o">.</span><span class="na">toCharArray</span><span class="o">())</span> <span class="o">{</span>
            <span class="k">switch</span><span class="o">(</span><span class="n">ch</span><span class="o">)</span> <span class="o">{</span>
                <span class="k">case</span> <span class="sc">'w'</span><span class="o">:</span> <span class="n">answer</span> <span class="o">+=</span> <span class="mi">1</span><span class="o">;</span> <span class="k">break</span><span class="o">;</span>
                <span class="k">case</span> <span class="sc">'s'</span><span class="o">:</span> <span class="n">answer</span> <span class="o">-=</span> <span class="mi">1</span><span class="o">;</span> <span class="k">break</span><span class="o">;</span>
                <span class="k">case</span> <span class="sc">'d'</span><span class="o">:</span> <span class="n">answer</span> <span class="o">+=</span> <span class="mi">10</span><span class="o">;</span> <span class="k">break</span><span class="o">;</span>
                <span class="k">case</span> <span class="sc">'a'</span><span class="o">:</span> <span class="n">answer</span> <span class="o">-=</span> <span class="mi">10</span><span class="o">;</span> <span class="k">break</span><span class="o">;</span>
                <span class="k">default</span><span class="o">:</span><span class="k">break</span><span class="o">;</span>
            <span class="o">}</span>
        <span class="o">}</span>

        <span class="k">return</span> <span class="n">answer</span><span class="o">;</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<p>따로 char 배열을 안만들고 이런식으로 하는 법이 있다.</p>

<h1 id="수-조작하기-2">수 조작하기 2</h1>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="nc">String</span> <span class="nf">solution</span><span class="o">(</span><span class="kt">int</span><span class="o">[]</span> <span class="n">numLog</span><span class="o">)</span> <span class="o">{</span>
        <span class="nc">String</span> <span class="n">answer</span> <span class="o">=</span> <span class="s">""</span><span class="o">;</span>
        <span class="kt">char</span><span class="o">[]</span> <span class="n">answer1</span> <span class="o">=</span> <span class="k">new</span> <span class="kt">char</span><span class="o">[</span><span class="n">numLog</span><span class="o">.</span><span class="na">length</span><span class="o">-</span><span class="mi">1</span><span class="o">];</span>
        
        
        <span class="k">for</span><span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">numLog</span><span class="o">.</span><span class="na">length</span><span class="o">;</span> <span class="n">i</span><span class="o">++){</span>
            <span class="kt">int</span> <span class="n">difference</span> <span class="o">=</span> <span class="o">(</span><span class="n">numLog</span><span class="o">[</span><span class="n">i</span><span class="o">]</span> <span class="o">-</span> <span class="n">numLog</span><span class="o">[</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="o">]);</span>
            <span class="k">if</span><span class="o">(</span><span class="n">difference</span> <span class="o">==</span> <span class="mi">1</span><span class="o">){</span>
                <span class="n">answer1</span><span class="o">[</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="o">]</span> <span class="o">=</span> <span class="sc">'w'</span><span class="o">;</span>
            <span class="o">}</span><span class="k">else</span> <span class="k">if</span><span class="o">(</span><span class="n">difference</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="o">){</span>
                <span class="n">answer1</span><span class="o">[</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="o">]</span> <span class="o">=</span> <span class="sc">'s'</span><span class="o">;</span>
            <span class="o">}</span><span class="k">else</span> <span class="k">if</span><span class="o">(</span><span class="n">difference</span> <span class="o">==</span> <span class="mi">10</span><span class="o">){</span>
                <span class="n">answer1</span><span class="o">[</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="o">]</span> <span class="o">=</span> <span class="sc">'d'</span><span class="o">;</span>
            <span class="o">}</span><span class="k">else</span> <span class="k">if</span><span class="o">(</span><span class="n">difference</span> <span class="o">==</span> <span class="o">-</span><span class="mi">10</span><span class="o">){</span>
                <span class="n">answer1</span><span class="o">[</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="o">]</span> <span class="o">=</span> <span class="sc">'a'</span><span class="o">;</span>
            <span class="o">}</span>
        <span class="o">}</span>
        <span class="k">for</span><span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">answer1</span><span class="o">.</span><span class="na">length</span><span class="o">;</span><span class="n">i</span><span class="o">++){</span>
            <span class="n">answer</span> <span class="o">+=</span> <span class="n">answer1</span><span class="o">[</span><span class="n">i</span><span class="o">];</span>
        <span class="o">}</span>
        <span class="k">return</span> <span class="n">answer</span><span class="o">;</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<p>numlog의 경우 배열의 수중 첫번쨰의 값 0 이 문자를 출력하기 전이라해당 배열을 빼서 answer배열에는 -1 을 주었다.</p>

<p>for문은 첫번째 0부터 시작 하면 계산이 힘들어 져서 1부터 시작하여 뒤에 숫자 i-1에 기존 i-(i-1)을 비교하여 나온 값들을 if문으로 주었고</p>

<p>answer에 들어가는 값들을 i-1로하여 배열값0부터 들어가게 만들었다.</p>

<h1 id="수열과-구간-쿼리-3">수열과 구간 쿼리 3</h1>

<p>해당 문제는 20분정도 고민후 어떻게해야할지 감이 안잡혀서 구글링 해서 찾았다.</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="nn">java.util.Arrays</span><span class="o">;</span>

<span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="kt">int</span><span class="o">[]</span> <span class="nf">solution</span><span class="o">(</span><span class="kt">int</span><span class="o">[]</span> <span class="n">arr</span><span class="o">,</span> <span class="kt">int</span><span class="o">[][]</span> <span class="n">queries</span><span class="o">)</span> <span class="o">{</span>
        <span class="kt">int</span><span class="o">[]</span> <span class="n">answer</span> <span class="o">=</span> <span class="nc">Arrays</span><span class="o">.</span><span class="na">copyOf</span><span class="o">(</span><span class="n">arr</span><span class="o">,</span> <span class="n">arr</span><span class="o">.</span><span class="na">length</span><span class="o">);</span>

        <span class="k">for</span> <span class="o">(</span><span class="kt">int</span><span class="o">[]</span> <span class="n">query</span> <span class="o">:</span> <span class="n">queries</span><span class="o">)</span> <span class="o">{</span>
            <span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="n">query</span><span class="o">[</span><span class="mi">0</span><span class="o">];</span>
            <span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="n">query</span><span class="o">[</span><span class="mi">1</span><span class="o">];</span>

            <span class="kt">int</span> <span class="n">temp</span> <span class="o">=</span> <span class="n">answer</span><span class="o">[</span><span class="n">i</span><span class="o">];</span>
            <span class="n">answer</span><span class="o">[</span><span class="n">i</span><span class="o">]</span> <span class="o">=</span> <span class="n">answer</span><span class="o">[</span><span class="n">j</span><span class="o">];</span>
            <span class="n">answer</span><span class="o">[</span><span class="n">j</span><span class="o">]</span> <span class="o">=</span> <span class="n">temp</span><span class="o">;</span>
        <span class="o">}</span>

        <span class="k">return</span> <span class="n">answer</span><span class="o">;</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<p>Arrays.copyOf 메서드를 사용하여 arr의 배열 사본을 만듬</p>

<p>즉 answer은 arr의 값을 가진다라는 뜻임</p>

<p>for (int[] query : queries)</p>

<p>queries배열 수 만큼 반복하고</p>

<p>i,j는 그안의 값들 이다.</p>

<p>int temp = answer[i]</p>

<p>i와 j의 위치를 바꿀꺼미 우선 i의 값을 temp에 저장</p>

<p>answer[i] = answer[j];</p>

<p>이제 i의 값을 j 로 바꿔줌</p>

<p>answer[j] = temp;</p>

<p>아까 i의 값을 저장해둔 temp를</p>

<p>j의 값을 temp로 바꿔줌</p>

<h1 id="수열과-구간-쿼리-2">수열과 구간 쿼리 2</h1>

<p>해당 문제도 20분 이상 고민 했지만 답이 나오지 않아 다시 구글링을 했다.</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="kt">int</span><span class="o">[]</span> <span class="nf">solution</span><span class="o">(</span><span class="kt">int</span><span class="o">[]</span> <span class="n">arr</span><span class="o">,</span> <span class="kt">int</span><span class="o">[][]</span> <span class="n">queries</span><span class="o">)</span> <span class="o">{</span>
        <span class="kt">int</span><span class="o">[]</span> <span class="n">answer</span> <span class="o">=</span> <span class="k">new</span> <span class="kt">int</span> <span class="o">[</span><span class="n">queries</span><span class="o">.</span><span class="na">length</span><span class="o">];</span>
        <span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">queries</span><span class="o">.</span><span class="na">length</span><span class="o">;</span> <span class="n">i</span><span class="o">++)</span> <span class="o">{</span>
            <span class="kt">int</span> <span class="n">s</span> <span class="o">=</span> <span class="n">queries</span><span class="o">[</span><span class="n">i</span><span class="o">][</span><span class="mi">0</span><span class="o">];</span>
            <span class="kt">int</span> <span class="n">e</span> <span class="o">=</span> <span class="n">queries</span><span class="o">[</span><span class="n">i</span><span class="o">][</span><span class="mi">1</span><span class="o">];</span>
            <span class="kt">int</span> <span class="n">k</span> <span class="o">=</span> <span class="n">queries</span><span class="o">[</span><span class="n">i</span><span class="o">][</span><span class="mi">2</span><span class="o">];</span>
            <span class="kt">int</span> <span class="n">minValue</span> <span class="o">=</span> <span class="nc">Integer</span><span class="o">.</span><span class="na">MAX_VALUE</span><span class="o">;</span>
            <span class="kt">boolean</span> <span class="n">found</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
            
            <span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="n">s</span><span class="o">;</span> <span class="n">j</span> <span class="o">&lt;=</span> <span class="n">e</span><span class="o">;</span> <span class="n">j</span><span class="o">++)</span> <span class="o">{</span>
                <span class="k">if</span> <span class="o">(</span><span class="n">arr</span><span class="o">[</span><span class="n">j</span><span class="o">]</span> <span class="o">&gt;</span> <span class="n">k</span> <span class="o">&amp;&amp;</span> <span class="n">arr</span><span class="o">[</span><span class="n">j</span><span class="o">]</span> <span class="o">&lt;</span> <span class="n">minValue</span><span class="o">)</span> <span class="o">{</span>
                    <span class="n">minValue</span> <span class="o">=</span> <span class="n">arr</span><span class="o">[</span><span class="n">j</span><span class="o">];</span>
                    <span class="n">found</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
                <span class="o">}</span>
            <span class="o">}</span>
            
            <span class="k">if</span> <span class="o">(</span><span class="n">found</span><span class="o">)</span> <span class="o">{</span>
                <span class="n">answer</span><span class="o">[</span><span class="n">i</span><span class="o">]</span> <span class="o">=</span> <span class="n">minValue</span><span class="o">;</span>
            <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
                <span class="n">answer</span><span class="o">[</span><span class="n">i</span><span class="o">]</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="o">;</span>
            <span class="o">}</span>
        <span class="o">}</span>
        <span class="k">return</span> <span class="n">answer</span><span class="o">;</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<p>int minValue = Integer.MAX_VALUE;</p>

<p>해당 함수는 k보다 크면서 가장 작은 값을 저장할 변수</p>

<p>배열의 값을 비교할때 항상 첫번째로 찾은 유요한 값이 minvalue에 저장 된다고 한다.</p>

<p>boolean found = false;</p>

<p>찾은 값이 유요한 값인지 를 확인하는 변수</p>

<p>for (int j = s; j &lt;= e; j++)</p>

<p>s,e내에서 배열 arr의 모든 요소를 순회하기 위해 사용 된다.</p>

<p>if (arr[j] &gt; k &amp;&amp; arr[j] &lt; minValue) {</p>

<p>k보다 크면서 minvalue보다 작은 값을 찾는다</p>

<p>mainvalue의 기본값은 max_value이기 때문에 최대 값을 가지고있어서</p>

<p>첫번째 조건만 만족하면 그 아래 코드를 실행해서</p>

<p>minValue = arr[j];</p>

<p>이렇게 j의 값을 넣는다</p>

<p>if (found) {
    answer[i] = minValue;
} else {
    answer[i] = -1;
}</p>

<p>해당 코드는 최종 결과 값들을 answer[i]배열에 넣는 값이다</p>

<p>ture가 나왔을떄는 i에 minvalue값을 넣고</p>

<p>flase가 나오면 -1 의 값을 넣는다</p>]]></content><author><name>JaeHwan</name><email>jelly0379@gmail.com</email></author><summary type="html"><![CDATA[옵션]]></summary></entry><entry><title type="html">프로그래머스) day 5 기초 코딩</title><link href="https://daramggi.github.io/coding/Programmers_Basic(D5)/" rel="alternate" type="text/html" title="프로그래머스) day 5 기초 코딩" /><published>2024-07-09T00:00:00+09:00</published><updated>2024-07-09T00:00:00+09:00</updated><id>https://daramggi.github.io/coding/Programmers_Basic(D5)</id><content type="html" xml:base="https://daramggi.github.io/coding/Programmers_Basic(D5)/"><![CDATA[<h1 id="코드-처리하기">코드 처리하기</h1>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="nc">String</span> <span class="nf">solution</span><span class="o">(</span><span class="nc">String</span> <span class="n">code</span><span class="o">)</span> <span class="o">{</span>
        <span class="kt">char</span><span class="o">[]</span> <span class="n">arr</span> <span class="o">=</span> <span class="n">code</span><span class="o">.</span><span class="na">toCharArray</span><span class="o">();</span>
        <span class="kt">int</span> <span class="n">mode</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
        <span class="nc">String</span> <span class="n">answer</span> <span class="o">=</span> <span class="s">""</span><span class="o">;</span>
        <span class="k">for</span><span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">code</span><span class="o">.</span><span class="na">length</span><span class="o">();</span> <span class="n">i</span><span class="o">++){</span>
            <span class="k">if</span><span class="o">(</span><span class="n">arr</span><span class="o">[</span><span class="n">i</span><span class="o">]</span> <span class="o">==</span> <span class="sc">'1'</span><span class="o">){</span>
                <span class="kt">int</span> <span class="n">cheng</span> <span class="o">=</span> <span class="n">mode</span> <span class="o">-</span> <span class="mi">1</span> <span class="o">==</span> <span class="mi">0</span> <span class="o">?</span> <span class="mi">0</span> <span class="o">:</span> <span class="mi">1</span><span class="o">;</span>
                <span class="n">mode</span> <span class="o">=</span> <span class="n">cheng</span><span class="o">;</span>
            <span class="o">}</span>
            <span class="k">else</span> <span class="nf">if</span><span class="o">(</span><span class="n">i</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">!=</span> <span class="mi">0</span> <span class="o">&amp;&amp;</span> <span class="n">mode</span> <span class="o">==</span> <span class="mi">1</span><span class="o">){</span>
                <span class="n">answer</span> <span class="o">+=</span> <span class="n">arr</span><span class="o">[</span><span class="n">i</span><span class="o">];</span>
            <span class="o">}</span>
            <span class="k">else</span> <span class="nf">if</span><span class="o">(</span><span class="n">i</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">0</span> <span class="o">&amp;&amp;</span> <span class="n">mode</span> <span class="o">==</span> <span class="mi">0</span><span class="o">){</span>
                
                <span class="n">answer</span> <span class="o">+=</span> <span class="n">arr</span><span class="o">[</span><span class="n">i</span><span class="o">];</span>
            <span class="o">}</span>
                
            
        <span class="o">}</span>
        <span class="k">if</span><span class="o">(</span><span class="n">answer</span><span class="o">.</span><span class="na">isEmpty</span><span class="o">()){</span>
            <span class="n">answer</span> <span class="o">=</span> <span class="s">"EMPTY"</span><span class="o">;</span>
            <span class="k">return</span> <span class="n">answer</span><span class="o">;</span>
        <span class="o">}</span>
        <span class="k">else</span>
            <span class="k">return</span> <span class="n">answer</span><span class="o">;</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<h1 id="등차수열의-특정한-항만-더하기">등차수열의 특정한 항만 더하기</h1>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="kt">int</span> <span class="nf">solution</span><span class="o">(</span><span class="kt">int</span> <span class="n">a</span><span class="o">,</span> <span class="kt">int</span> <span class="n">d</span><span class="o">,</span> <span class="kt">boolean</span><span class="o">[]</span> <span class="n">included</span><span class="o">)</span> <span class="o">{</span>
        <span class="kt">int</span> <span class="n">answer</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
        <span class="k">for</span><span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">included</span><span class="o">.</span><span class="na">length</span><span class="o">;</span> <span class="n">i</span><span class="o">++){</span>
            <span class="k">if</span><span class="o">(</span><span class="n">included</span><span class="o">[</span><span class="n">i</span><span class="o">]</span> <span class="o">==</span> <span class="kc">true</span><span class="o">){</span>
                <span class="n">answer</span> <span class="o">+=</span> <span class="n">a</span><span class="o">;</span>
            <span class="o">}</span>
            <span class="n">a</span> <span class="o">+=</span> <span class="n">d</span><span class="o">;</span>
        <span class="o">}</span>
        <span class="k">return</span> <span class="n">answer</span><span class="o">;</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<h1 id="주사위-게임">주사위 게임</h1>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="kt">int</span> <span class="nf">solution</span><span class="o">(</span><span class="kt">int</span> <span class="n">a</span><span class="o">,</span> <span class="kt">int</span> <span class="n">b</span><span class="o">,</span> <span class="kt">int</span> <span class="n">c</span><span class="o">)</span> <span class="o">{</span>
        <span class="kt">int</span> <span class="n">answer</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
        <span class="k">if</span><span class="o">(</span><span class="n">a</span> <span class="o">==</span> <span class="n">b</span> <span class="o">&amp;&amp;</span> <span class="n">b</span> <span class="o">==</span> <span class="n">c</span><span class="o">){</span>
            <span class="n">answer</span> <span class="o">+=</span> <span class="o">(</span><span class="n">a</span><span class="o">+</span><span class="n">b</span><span class="o">+</span><span class="n">c</span><span class="o">)</span> <span class="o">*</span> <span class="o">((</span><span class="n">a</span><span class="o">*</span><span class="n">a</span><span class="o">)+(</span><span class="n">b</span><span class="o">*</span><span class="n">b</span><span class="o">)+(</span><span class="n">c</span><span class="o">*</span><span class="n">c</span><span class="o">))</span> <span class="o">*</span> <span class="o">((</span><span class="n">a</span><span class="o">*</span><span class="n">a</span><span class="o">*</span><span class="n">a</span><span class="o">)+(</span><span class="n">b</span><span class="o">*</span><span class="n">b</span><span class="o">*</span><span class="n">b</span><span class="o">)+(</span><span class="n">c</span><span class="o">*</span><span class="n">c</span><span class="o">*</span><span class="n">c</span><span class="o">));</span>
        <span class="o">}</span><span class="k">else</span> <span class="k">if</span><span class="o">(</span>
            <span class="o">(</span><span class="n">a</span> <span class="o">==</span> <span class="n">b</span> <span class="o">&amp;&amp;</span> <span class="n">a</span> <span class="o">!=</span> <span class="n">c</span><span class="o">)</span> <span class="o">||</span>
            <span class="o">(</span><span class="n">b</span> <span class="o">==</span> <span class="n">c</span> <span class="o">&amp;&amp;</span> <span class="n">a</span> <span class="o">!=</span> <span class="n">b</span><span class="o">)</span> <span class="o">||</span>
            <span class="o">(</span><span class="n">c</span> <span class="o">==</span> <span class="n">a</span> <span class="o">&amp;&amp;</span> <span class="n">b</span> <span class="o">!=</span> <span class="n">c</span><span class="o">)){</span>
            <span class="n">answer</span> <span class="o">+=</span> <span class="o">(</span><span class="n">a</span><span class="o">+</span><span class="n">b</span><span class="o">+</span><span class="n">c</span><span class="o">)</span> <span class="o">*</span> <span class="o">((</span><span class="n">a</span><span class="o">*</span><span class="n">a</span><span class="o">)+(</span><span class="n">b</span><span class="o">*</span><span class="n">b</span><span class="o">)+(</span><span class="n">c</span><span class="o">*</span><span class="n">c</span><span class="o">));</span>
        <span class="o">}</span><span class="k">else</span> <span class="k">if</span><span class="o">(</span><span class="n">a</span> <span class="o">!=</span> <span class="n">b</span> <span class="o">&amp;&amp;</span> <span class="n">a</span> <span class="o">!=</span> <span class="n">b</span> <span class="o">&amp;&amp;</span> <span class="n">c</span> <span class="o">!=</span> <span class="n">b</span><span class="o">){</span>
            <span class="n">answer</span> <span class="o">+=</span> <span class="o">(</span><span class="n">a</span><span class="o">+</span><span class="n">b</span><span class="o">+</span><span class="n">c</span><span class="o">);</span>
        <span class="o">}</span>
        <span class="k">return</span> <span class="n">answer</span><span class="o">;</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<h1 id="원소들의-곱과-합">원소들의 곱과 합</h1>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="kt">int</span> <span class="nf">solution</span><span class="o">(</span><span class="kt">int</span><span class="o">[]</span> <span class="n">num_list</span><span class="o">)</span> <span class="o">{</span>
        <span class="kt">int</span> <span class="n">answer</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
        <span class="kt">int</span> <span class="n">answer2</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
        <span class="kt">int</span> <span class="n">answer3</span> <span class="o">=</span> <span class="mi">1</span><span class="o">;</span>

        <span class="k">for</span><span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">num_list</span><span class="o">.</span><span class="na">length</span><span class="o">;</span> <span class="n">i</span><span class="o">++){</span>
            <span class="n">answer2</span> <span class="o">+=</span> <span class="n">num_list</span><span class="o">[</span><span class="n">i</span><span class="o">];</span>
            <span class="n">answer3</span> <span class="o">*=</span> <span class="n">num_list</span><span class="o">[</span><span class="n">i</span><span class="o">];</span>
        <span class="o">}</span>
        <span class="n">answer2</span> <span class="o">=</span> <span class="o">(</span><span class="n">answer2</span> <span class="o">*</span> <span class="n">answer2</span><span class="o">);</span>
        <span class="k">if</span><span class="o">(</span><span class="n">answer2</span> <span class="o">&gt;</span> <span class="n">answer3</span><span class="o">){</span>
            <span class="n">answer</span> <span class="o">=</span> <span class="mi">1</span><span class="o">;</span> 
        <span class="o">}</span><span class="k">else</span>
        <span class="n">answer</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
        <span class="k">return</span> <span class="n">answer</span><span class="o">;</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<h1 id="이어-붙인-수">이어 붙인 수</h1>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="kt">int</span> <span class="nf">solution</span><span class="o">(</span><span class="kt">int</span><span class="o">[]</span> <span class="n">num_list</span><span class="o">)</span> <span class="o">{</span>
        <span class="kt">int</span> <span class="n">answer</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
        <span class="nc">String</span> <span class="n">a</span> <span class="o">=</span> <span class="s">""</span><span class="o">;</span>
        <span class="nc">String</span> <span class="n">b</span> <span class="o">=</span> <span class="s">""</span><span class="o">;</span>
        <span class="k">for</span><span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">num_list</span><span class="o">.</span><span class="na">length</span><span class="o">;</span> <span class="n">i</span><span class="o">++){</span>
            <span class="k">if</span><span class="o">(</span><span class="n">num_list</span><span class="o">[</span><span class="n">i</span><span class="o">]</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">0</span><span class="o">){</span>
                <span class="n">a</span> <span class="o">+=</span> <span class="nc">String</span><span class="o">.</span><span class="na">valueOf</span><span class="o">(</span><span class="n">num_list</span><span class="o">[</span><span class="n">i</span><span class="o">]);</span>
            <span class="o">}</span><span class="k">else</span><span class="o">{</span>
                <span class="n">b</span> <span class="o">+=</span> <span class="nc">String</span><span class="o">.</span><span class="na">valueOf</span><span class="o">(</span><span class="n">num_list</span><span class="o">[</span><span class="n">i</span><span class="o">]);</span>
            <span class="o">}</span>
        <span class="o">}</span>
        <span class="kt">int</span> <span class="n">d</span> <span class="o">=</span> <span class="nc">Integer</span><span class="o">.</span><span class="na">parseInt</span><span class="o">(</span><span class="n">a</span><span class="o">);</span>
        <span class="kt">int</span> <span class="n">q</span> <span class="o">=</span> <span class="nc">Integer</span><span class="o">.</span><span class="na">parseInt</span><span class="o">(</span><span class="n">b</span><span class="o">);</span>
        <span class="n">answer</span> <span class="o">=</span> <span class="o">(</span><span class="n">d</span><span class="o">+</span><span class="n">q</span><span class="o">);</span>
        <span class="k">return</span> <span class="n">answer</span><span class="o">;</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>]]></content><author><name>JaeHwan</name><email>jelly0379@gmail.com</email></author><category term="coding" /><category term="blog" /><category term="프로그래머스" /><summary type="html"><![CDATA[코드 처리하기]]></summary></entry><entry><title type="html">프로젝트)카카오, 네이버 로그인시 db저장</title><link href="https://daramggi.github.io/coding/kakao,naver_DB/" rel="alternate" type="text/html" title="프로젝트)카카오, 네이버 로그인시 db저장" /><published>2024-07-09T00:00:00+09:00</published><updated>2024-07-09T00:00:00+09:00</updated><id>https://daramggi.github.io/coding/kakao,naver_DB</id><content type="html" xml:base="https://daramggi.github.io/coding/kakao,naver_DB/"><![CDATA[<h1 id="카카오-네이버-db입력-작성">카카오 네이버 DB입력 작성</h1>

<h2 id="카카오-네이버-db저장">카카오, 네이버 db저장</h2>

<p>기존 코드에서 로그인 성공시 db에 넣는 기능 구현을 성공했지만</p>

<p>로그인 할시에 계속 db에 저장 할려고해서 오류가나 2번째 로그인 부터는 오류로 인해서 로그인이 안됬다</p>

<p>이후 if문으로 해당 아이디가 있으면 바로 로그인이되고</p>

<p>아이디가 없으면 db에 값들을 저장후 로그인이 되게 설정 하였다,</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">String</span> <span class="n">kakaoId</span> <span class="o">=</span> <span class="s">"kakao_"</span> <span class="o">+</span> <span class="nc">Long</span><span class="o">.</span><span class="na">toString</span><span class="o">((</span><span class="nc">Integer</span><span class="o">)</span> <span class="n">userInfo</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="s">"id"</span><span class="o">));</span>
		<span class="nc">UserEntity</span> <span class="n">existingUser</span> <span class="o">=</span> <span class="n">userRepository</span><span class="o">.</span><span class="na">findByUId</span><span class="o">(</span><span class="n">kakaoId</span><span class="o">);</span>
        
        <span class="k">if</span> <span class="o">(</span><span class="n">existingUser</span> <span class="o">==</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span>
            <span class="c1">// 새로운 사용자 정보 설정</span>
            <span class="nc">UserEntity</span> <span class="n">newUser</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">UserEntity</span><span class="o">();</span>
            <span class="n">newUser</span><span class="o">.</span><span class="na">setUMail</span><span class="o">((</span><span class="nc">String</span><span class="o">)</span> <span class="n">userInfo</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="s">"email"</span><span class="o">));</span>
            <span class="n">newUser</span><span class="o">.</span><span class="na">setUName</span><span class="o">((</span><span class="nc">String</span><span class="o">)</span> <span class="n">userInfo</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="s">"nickname"</span><span class="o">));</span>
            <span class="n">newUser</span><span class="o">.</span><span class="na">setURegister</span><span class="o">(</span><span class="nc">LocalDate</span><span class="o">.</span><span class="na">now</span><span class="o">());</span>
            <span class="n">newUser</span><span class="o">.</span><span class="na">setUPw</span><span class="o">(</span><span class="s">""</span><span class="o">);</span> <span class="c1">// 카카오 로그인에서는 비밀번호를 사용하지 않으므로 빈 값으로 설정</span>
            <span class="n">newUser</span><span class="o">.</span><span class="na">setUPofile</span><span class="o">((</span><span class="nc">String</span><span class="o">)</span> <span class="n">userInfo</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="s">"profile"</span><span class="o">));</span>
            <span class="n">newUser</span><span class="o">.</span><span class="na">setUBirth</span><span class="o">(</span><span class="s">""</span><span class="o">);</span> <span class="c1">// 생일 정보는 카카오에서 따로 제공하지 않으므로 비워둠</span>
            <span class="n">newUser</span><span class="o">.</span><span class="na">setUTel</span><span class="o">(</span><span class="s">""</span><span class="o">);</span> <span class="c1">// 전화번호 정보도 카카오에서 따로 제공하지 않으므로 비워둠</span>
            <span class="n">newUser</span><span class="o">.</span><span class="na">setUId</span><span class="o">(</span><span class="n">kakaoId</span><span class="o">);</span>
            
            <span class="n">userRepository</span><span class="o">.</span><span class="na">save</span><span class="o">(</span><span class="n">newUser</span><span class="o">);</span> <span class="c1">// 새로운 사용자 저장</span>
            <span class="n">session</span><span class="o">.</span><span class="na">setAttribute</span><span class="o">(</span><span class="s">"access_Token"</span><span class="o">,</span> <span class="n">access_Token</span><span class="o">);</span>
            <span class="n">session</span><span class="o">.</span><span class="na">setAttribute</span><span class="o">(</span><span class="s">"UId"</span><span class="o">,</span> <span class="n">newUser</span><span class="o">.</span><span class="na">getUId</span><span class="o">());</span> <span class="c1">// 세션에 새로운 사용자 ID 설정</span>
        <span class="o">}</span><span class="k">else</span> <span class="o">{</span>
        	<span class="n">session</span><span class="o">.</span><span class="na">setAttribute</span><span class="o">(</span><span class="s">"access_Token"</span><span class="o">,</span> <span class="n">access_Token</span><span class="o">);</span>
        	<span class="n">session</span><span class="o">.</span><span class="na">setAttribute</span><span class="o">(</span><span class="s">"UId"</span><span class="o">,</span> <span class="n">existingUser</span><span class="o">.</span><span class="na">getUId</span><span class="o">());</span>
        <span class="o">}</span>
</code></pre></div></div>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">UserEntity</span> <span class="n">existingUser</span> <span class="o">=</span> <span class="n">userrepository</span><span class="o">.</span><span class="na">findByUId</span><span class="o">(</span><span class="n">naverId</span><span class="o">);</span>
		<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"아이디 확인 : "</span> <span class="o">+</span> <span class="n">existingUser</span><span class="o">);</span>
		
		<span class="k">if</span><span class="o">(</span><span class="n">existingUser</span> <span class="o">!=</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span>
			<span class="n">session</span><span class="o">.</span><span class="na">setAttribute</span><span class="o">(</span><span class="s">"UId"</span><span class="o">,</span> <span class="n">naverId</span><span class="o">);</span>
			<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"네이버 세션 등록 : "</span> <span class="o">+</span> <span class="n">naverId</span><span class="o">);</span>
			<span class="k">return</span> <span class="s">"redirect:/"</span><span class="o">;</span>
		<span class="o">}</span><span class="k">else</span> <span class="o">{</span>
			<span class="nc">UserEntity</span> <span class="n">newUser</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">UserEntity</span><span class="o">();</span>
            <span class="n">newUser</span><span class="o">.</span><span class="na">setUMail</span><span class="o">(</span><span class="n">email</span><span class="o">);</span>
            <span class="n">newUser</span><span class="o">.</span><span class="na">setUName</span><span class="o">(</span><span class="s">"naver-"</span> <span class="o">+</span> <span class="n">naverProfileResponse</span><span class="o">.</span><span class="na">getResponse</span><span class="o">().</span><span class="na">getNickname</span><span class="o">());</span>
            <span class="n">newUser</span><span class="o">.</span><span class="na">setURegister</span><span class="o">(</span><span class="nc">LocalDate</span><span class="o">.</span><span class="na">now</span><span class="o">());</span>
            <span class="n">newUser</span><span class="o">.</span><span class="na">setUPw</span><span class="o">(</span><span class="s">""</span><span class="o">);</span> <span class="c1">// 비밀번호는 네이버 로그인에서는 사용되지 않으므로 빈 값</span>
            <span class="n">newUser</span><span class="o">.</span><span class="na">setUPofile</span><span class="o">(</span><span class="n">naverProfileResponse</span><span class="o">.</span><span class="na">getResponse</span><span class="o">().</span><span class="na">getProfile_image</span><span class="o">());</span>
            <span class="n">newUser</span><span class="o">.</span><span class="na">setUBirth</span><span class="o">(</span><span class="n">naverProfileResponse</span><span class="o">.</span><span class="na">getResponse</span><span class="o">().</span><span class="na">getBirthyear</span><span class="o">()</span> <span class="o">+</span> <span class="s">"-"</span> <span class="o">+</span> <span class="n">naverProfileResponse</span><span class="o">.</span><span class="na">getResponse</span><span class="o">().</span><span class="na">getBirthday</span><span class="o">());</span>
            <span class="n">newUser</span><span class="o">.</span><span class="na">setUTel</span><span class="o">(</span><span class="n">naverProfileResponse</span><span class="o">.</span><span class="na">getResponse</span><span class="o">().</span><span class="na">getMobile</span><span class="o">());</span>
            <span class="n">newUser</span><span class="o">.</span><span class="na">setUId</span><span class="o">(</span><span class="n">naverProfileResponse</span><span class="o">.</span><span class="na">getResponse</span><span class="o">().</span><span class="na">getId</span><span class="o">());</span>
            <span class="n">userrepository</span><span class="o">.</span><span class="na">save</span><span class="o">(</span><span class="n">newUser</span><span class="o">);</span>

            <span class="n">session</span><span class="o">.</span><span class="na">setAttribute</span><span class="o">(</span><span class="s">"UId"</span><span class="o">,</span> <span class="n">newUser</span><span class="o">.</span><span class="na">getUId</span><span class="o">());</span>
            <span class="k">return</span> <span class="s">"redirect:/"</span><span class="o">;</span>
		<span class="o">}</span>
</code></pre></div></div>]]></content><author><name>JaeHwan</name><email>jelly0379@gmail.com</email></author><category term="coding" /><category term="blog" /><category term="백준" /><summary type="html"><![CDATA[카카오 네이버 DB입력 작성]]></summary></entry><entry><title type="html">프로그래머스) day 3 기초 코딩</title><link href="https://daramggi.github.io/coding/Programmers_Basic(D3)/" rel="alternate" type="text/html" title="프로그래머스) day 3 기초 코딩" /><published>2024-07-08T00:00:00+09:00</published><updated>2024-07-08T00:00:00+09:00</updated><id>https://daramggi.github.io/coding/Programmers_Basic(D3)</id><content type="html" xml:base="https://daramggi.github.io/coding/Programmers_Basic(D3)/"><![CDATA[<h1 id="문자열-섞기">문자열 섞기</h1>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="nc">String</span> <span class="nf">solution</span><span class="o">(</span><span class="nc">String</span> <span class="n">str1</span><span class="o">,</span> <span class="nc">String</span> <span class="n">str2</span><span class="o">)</span> <span class="o">{</span>
        <span class="kt">int</span> <span class="n">x</span> <span class="o">=</span> <span class="n">str1</span><span class="o">.</span><span class="na">length</span><span class="o">()</span> <span class="o">+</span> <span class="n">str2</span><span class="o">.</span><span class="na">length</span><span class="o">();</span>
        <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">x</span><span class="o">);</span>
        <span class="kt">char</span><span class="o">[]</span> <span class="n">arr</span> <span class="o">=</span> <span class="k">new</span> <span class="kt">char</span><span class="o">[</span><span class="n">x</span><span class="o">];</span>
        <span class="kt">int</span> <span class="n">y</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>

        <span class="k">for</span><span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">x</span><span class="o">;</span> <span class="n">i</span><span class="o">++){</span>
            <span class="n">arr</span><span class="o">[</span><span class="n">i</span><span class="o">]</span> <span class="o">=</span> <span class="n">str1</span><span class="o">.</span><span class="na">charAt</span><span class="o">(</span><span class="n">y</span><span class="o">);</span>
            <span class="n">i</span><span class="o">++;</span>
            <span class="n">arr</span><span class="o">[</span><span class="n">i</span><span class="o">]</span> <span class="o">=</span> <span class="n">str2</span><span class="o">.</span><span class="na">charAt</span><span class="o">(</span><span class="n">y</span><span class="o">);</span>
            <span class="n">y</span><span class="o">++;</span>
        <span class="o">}</span>
        <span class="nc">String</span> <span class="n">answer</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">String</span><span class="o">(</span><span class="n">arr</span><span class="o">);</span>
        <span class="k">return</span> <span class="n">answer</span><span class="o">;</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<h1 id="더-크게-합치기">더 크게 합치기</h1>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="kt">int</span> <span class="nf">solution</span><span class="o">(</span><span class="kt">int</span> <span class="n">a</span><span class="o">,</span> <span class="kt">int</span> <span class="n">b</span><span class="o">)</span> <span class="o">{</span>
        <span class="kt">int</span> <span class="n">answer</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
        <span class="nc">String</span> <span class="n">e</span> <span class="o">=</span> <span class="nc">String</span><span class="o">.</span><span class="na">valueOf</span><span class="o">(</span><span class="n">a</span><span class="o">);</span>
        <span class="nc">String</span> <span class="n">r</span> <span class="o">=</span> <span class="nc">String</span><span class="o">.</span><span class="na">valueOf</span><span class="o">(</span><span class="n">b</span><span class="o">);</span>
        <span class="nc">String</span> <span class="n">c</span> <span class="o">=</span> <span class="o">(</span><span class="n">e</span><span class="o">+</span><span class="n">r</span><span class="o">);</span>
        <span class="kt">int</span> <span class="n">q</span> <span class="o">=</span> <span class="nc">Integer</span><span class="o">.</span><span class="na">parseInt</span><span class="o">(</span><span class="n">c</span><span class="o">);</span>
        <span class="nc">String</span> <span class="n">d</span> <span class="o">=</span> <span class="o">(</span><span class="n">r</span><span class="o">+</span><span class="n">e</span><span class="o">);</span>
        <span class="kt">int</span> <span class="n">w</span> <span class="o">=</span> <span class="nc">Integer</span><span class="o">.</span><span class="na">parseInt</span><span class="o">(</span><span class="n">d</span><span class="o">);</span>
        <span class="k">if</span><span class="o">(</span><span class="n">q</span> <span class="o">&lt;</span> <span class="n">w</span><span class="o">){</span>
            <span class="n">answer</span> <span class="o">=</span> <span class="n">w</span><span class="o">;</span>
        <span class="o">}</span><span class="k">else</span>
            <span class="n">answer</span> <span class="o">=</span> <span class="n">q</span><span class="o">;</span>
        
        <span class="k">return</span> <span class="n">answer</span><span class="o">;</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<p>다른 사람 풀이</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="kt">int</span> <span class="nf">solution</span><span class="o">(</span><span class="kt">int</span> <span class="n">a</span><span class="o">,</span> <span class="kt">int</span> <span class="n">b</span><span class="o">)</span> <span class="o">{</span>
        <span class="k">return</span> <span class="nc">Math</span><span class="o">.</span><span class="na">max</span><span class="o">(</span><span class="nc">Integer</span><span class="o">.</span><span class="na">parseInt</span><span class="o">(</span><span class="n">a</span> <span class="o">+</span> <span class="s">""</span> <span class="o">+</span> <span class="n">b</span><span class="o">),</span> <span class="nc">Integer</span><span class="o">.</span><span class="na">parseInt</span><span class="o">(</span><span class="n">b</span> <span class="o">+</span> <span class="s">""</span> <span class="o">+</span> <span class="n">a</span><span class="o">));</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<p>JAVA는  “” 이 포함되어 있을경우 String type으로 입력된다.</p>

<h1 id="두-수의-연산값-비교하기">두 수의 연산값 비교하기</h1>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="kt">int</span> <span class="nf">solution</span><span class="o">(</span><span class="kt">int</span> <span class="n">a</span><span class="o">,</span> <span class="kt">int</span> <span class="n">b</span><span class="o">)</span> <span class="o">{</span>
        
        <span class="nc">String</span> <span class="n">c</span> <span class="o">=</span> <span class="o">(</span><span class="n">a</span> <span class="o">+</span> <span class="s">""</span> <span class="o">+</span> <span class="n">b</span><span class="o">);</span>
        <span class="kt">int</span> <span class="n">d</span> <span class="o">=</span> <span class="o">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">a</span> <span class="o">*</span> <span class="n">b</span><span class="o">);</span>
        
        <span class="k">return</span> <span class="nc">Math</span><span class="o">.</span><span class="na">max</span><span class="o">(</span><span class="nc">Integer</span><span class="o">.</span><span class="na">parseInt</span><span class="o">(</span><span class="n">c</span><span class="o">)</span> <span class="o">,</span> <span class="n">d</span><span class="o">);</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>]]></content><author><name>JaeHwan</name><email>jelly0379@gmail.com</email></author><category term="coding" /><category term="blog" /><category term="프로그래머스" /><summary type="html"><![CDATA[문자열 섞기]]></summary></entry><entry><title type="html">프로그래머스) day 4 기초 코딩</title><link href="https://daramggi.github.io/coding/Programmers_Basic(D4)/" rel="alternate" type="text/html" title="프로그래머스) day 4 기초 코딩" /><published>2024-07-08T00:00:00+09:00</published><updated>2024-07-08T00:00:00+09:00</updated><id>https://daramggi.github.io/coding/Programmers_Basic(D4)</id><content type="html" xml:base="https://daramggi.github.io/coding/Programmers_Basic(D4)/"><![CDATA[<h1 id="n의-배수">n의 배수</h1>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="kt">int</span> <span class="nf">solution</span><span class="o">(</span><span class="kt">int</span> <span class="n">num</span><span class="o">,</span> <span class="kt">int</span> <span class="n">n</span><span class="o">)</span> <span class="o">{</span>
        <span class="kt">int</span> <span class="n">answer</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
        <span class="k">if</span><span class="o">(</span><span class="n">num</span> <span class="o">%</span> <span class="n">n</span> <span class="o">==</span> <span class="mi">0</span><span class="o">){</span>
            <span class="n">answer</span> <span class="o">=</span> <span class="mi">1</span><span class="o">;</span>
        <span class="o">}</span><span class="k">else</span>
            <span class="n">answer</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
        
        <span class="k">return</span> <span class="n">answer</span><span class="o">;</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<p>다른 사람 풀이</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="kt">int</span> <span class="nf">solution</span><span class="o">(</span><span class="kt">int</span> <span class="n">num</span><span class="o">,</span> <span class="kt">int</span> <span class="n">n</span><span class="o">)</span> <span class="o">{</span>
        <span class="kt">int</span> <span class="n">answer</span> <span class="o">=</span> <span class="n">num</span> <span class="o">%</span> <span class="n">n</span> <span class="o">==</span> <span class="mi">0</span> <span class="o">?</span> <span class="mi">1</span> <span class="o">:</span> <span class="mi">0</span><span class="o">;</span>
        <span class="k">return</span> <span class="n">answer</span><span class="o">;</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<p>if 문을 안쓰고 삼황 연산자 사</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">condition</span> <span class="o">?</span> <span class="n">value_if_true</span> <span class="o">:</span> <span class="n">value_if_false</span>
</code></pre></div></div>

<p>condition(조건)이  ture일때 앞에꺼를 출력 flase일떄 뒤에꺼를 출력</p>

<h1 id="공배수">공배수</h1>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="kt">int</span> <span class="nf">solution</span><span class="o">(</span><span class="kt">int</span> <span class="n">number</span><span class="o">,</span> <span class="kt">int</span> <span class="n">n</span><span class="o">,</span> <span class="kt">int</span> <span class="n">m</span><span class="o">)</span> <span class="o">{</span>
        <span class="kt">int</span> <span class="n">answer</span> <span class="o">=</span> <span class="n">number</span> <span class="o">%</span> <span class="n">n</span> <span class="o">==</span> <span class="mi">0</span> <span class="o">&amp;&amp;</span> <span class="n">number</span> <span class="o">%</span> <span class="n">m</span> <span class="o">==</span> <span class="mi">0</span> <span class="o">?</span> <span class="mi">1</span> <span class="o">:</span> <span class="mi">0</span><span class="o">;</span>
        <span class="k">return</span> <span class="n">answer</span><span class="o">;</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<p>삼황연산자 사용해서 한줄로 끝냈다.</p>

<h1 id="홀짝에-따라-다른-값-반환하기">홀짝에 따라 다른 값 반환하기</h1>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="kt">int</span> <span class="nf">solution</span><span class="o">(</span><span class="kt">int</span> <span class="n">n</span><span class="o">)</span> <span class="o">{</span>
        <span class="kt">int</span> <span class="n">answer</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
        <span class="k">if</span><span class="o">(</span><span class="n">n</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">1</span> <span class="o">){</span>
            <span class="k">for</span><span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">n</span><span class="o">;</span> <span class="n">i</span><span class="o">++){</span>
                <span class="k">if</span><span class="o">(</span><span class="n">i</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">1</span><span class="o">){</span>
                    <span class="n">answer</span> <span class="o">+=</span> <span class="n">i</span><span class="o">;</span>
                <span class="o">}</span>
                
            <span class="o">}</span>
        <span class="o">}</span><span class="k">else</span><span class="o">{</span>
            <span class="k">for</span><span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="o">;</span> <span class="n">i</span><span class="o">&lt;=</span> <span class="n">n</span><span class="o">;</span> <span class="n">i</span><span class="o">++){</span>
                <span class="k">if</span><span class="o">(</span><span class="n">i</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">0</span><span class="o">){</span>
                    <span class="n">answer</span> <span class="o">+=</span> <span class="n">i</span> <span class="o">*</span> <span class="n">i</span><span class="o">;</span>
                <span class="o">}</span>
            <span class="o">}</span>
        <span class="o">}</span>
        <span class="k">return</span> <span class="n">answer</span><span class="o">;</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<h1 id="조건-문자열">조건 문자열</h1>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="kt">int</span> <span class="nf">solution</span><span class="o">(</span><span class="nc">String</span> <span class="n">ineq</span><span class="o">,</span> <span class="nc">String</span> <span class="n">eq</span><span class="o">,</span> <span class="kt">int</span> <span class="n">n</span><span class="o">,</span> <span class="kt">int</span> <span class="n">m</span><span class="o">)</span> <span class="o">{</span>
        <span class="kt">int</span> <span class="n">answer</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
        <span class="kt">boolean</span> <span class="n">result</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
        <span class="k">if</span> <span class="o">(</span><span class="n">ineq</span><span class="o">.</span><span class="na">equals</span><span class="o">(</span><span class="s">"&lt;"</span><span class="o">)</span> <span class="o">&amp;&amp;</span> <span class="n">eq</span><span class="o">.</span><span class="na">equals</span><span class="o">(</span><span class="s">"="</span><span class="o">))</span> <span class="o">{</span>
            <span class="n">result</span> <span class="o">=</span> <span class="n">n</span> <span class="o">&lt;=</span> <span class="n">m</span><span class="o">;</span>
        <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="n">ineq</span><span class="o">.</span><span class="na">equals</span><span class="o">(</span><span class="s">"&lt;"</span><span class="o">)</span> <span class="o">&amp;&amp;</span> <span class="n">eq</span><span class="o">.</span><span class="na">equals</span><span class="o">(</span><span class="s">"!"</span><span class="o">))</span> <span class="o">{</span>
            <span class="n">result</span> <span class="o">=</span> <span class="n">n</span> <span class="o">&lt;</span> <span class="n">m</span><span class="o">;</span>
        <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="n">ineq</span><span class="o">.</span><span class="na">equals</span><span class="o">(</span><span class="s">"&gt;"</span><span class="o">)</span> <span class="o">&amp;&amp;</span> <span class="n">eq</span><span class="o">.</span><span class="na">equals</span><span class="o">(</span><span class="s">"="</span><span class="o">))</span> <span class="o">{</span>
            <span class="n">result</span> <span class="o">=</span> <span class="n">n</span> <span class="o">&gt;=</span> <span class="n">m</span><span class="o">;</span>
        <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="n">ineq</span><span class="o">.</span><span class="na">equals</span><span class="o">(</span><span class="s">"&gt;"</span><span class="o">)</span> <span class="o">&amp;&amp;</span> <span class="n">eq</span><span class="o">.</span><span class="na">equals</span><span class="o">(</span><span class="s">"!"</span><span class="o">))</span> <span class="o">{</span>
            <span class="n">result</span> <span class="o">=</span> <span class="n">n</span> <span class="o">&gt;</span> <span class="n">m</span><span class="o">;</span>
        <span class="o">}</span>
        
        <span class="k">if</span><span class="o">(</span><span class="n">result</span> <span class="o">==</span> <span class="kc">false</span><span class="o">){</span>
            <span class="n">answer</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
        <span class="o">}</span><span class="k">else</span>
            <span class="n">answer</span> <span class="o">=</span> <span class="mi">1</span><span class="o">;</span>
        
        <span class="k">return</span> <span class="n">answer</span><span class="o">;</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<h1 id="flag에-따라-다른-값-반환하기">flag에 따라 다른 값 반환하기</h1>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="kt">int</span> <span class="nf">solution</span><span class="o">(</span><span class="kt">int</span> <span class="n">a</span><span class="o">,</span> <span class="kt">int</span> <span class="n">b</span><span class="o">,</span> <span class="kt">boolean</span> <span class="n">flag</span><span class="o">)</span> <span class="o">{</span>
        <span class="kt">int</span> <span class="n">answer</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
        <span class="kt">int</span> <span class="n">d</span> <span class="o">=</span> <span class="o">(</span><span class="n">b</span><span class="o">*-</span><span class="mi">1</span><span class="o">);</span>
        <span class="k">if</span><span class="o">(</span><span class="n">flag</span><span class="o">){</span>
            <span class="n">answer</span> <span class="o">=</span> <span class="n">a</span><span class="o">+</span><span class="n">b</span><span class="o">;</span>
        <span class="o">}</span><span class="k">else</span>
            <span class="n">answer</span> <span class="o">=</span> <span class="n">a</span> <span class="o">-</span> <span class="n">b</span><span class="o">;</span>

        <span class="k">return</span> <span class="n">answer</span><span class="o">;</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>]]></content><author><name>JaeHwan</name><email>jelly0379@gmail.com</email></author><category term="coding" /><category term="blog" /><category term="프로그래머스" /><summary type="html"><![CDATA[n의 배수]]></summary></entry><entry><title type="html">프로젝트)카카오 로그인</title><link href="https://daramggi.github.io/coding/kakaoAPI/" rel="alternate" type="text/html" title="프로젝트)카카오 로그인" /><published>2024-07-08T00:00:00+09:00</published><updated>2024-07-08T00:00:00+09:00</updated><id>https://daramggi.github.io/coding/kakaoAPI</id><content type="html" xml:base="https://daramggi.github.io/coding/kakaoAPI/"><![CDATA[<h1 id="카카오-로그인">카카오 로그인</h1>

<p>해당 기능을 하용하기 위해서</p>

<p>https://developers.kakao.com/</p>

<p>해당 링크로 들어가서 설정을 해줘야한다.</p>

<p><img src="../../images/2025-07-02-kakaoAPI/스크린샷 2024-07-02 오후 5.21.48.png" alt="alt text" /></p>

<p>해당 사이트를 들어가면 사진처럼 어플리케이션 등록을 클릭한다.</p>

<p><img src="../../images/2025-07-02-kakaoAPI/스크린샷 2024-07-02 오후 5.23.40.png" alt="alt text" /></p>

<p>이후 자기가 원하는 이름과 사업자명을 작성을한다</p>

<p>필자는 idesign과 사업자명은 프로젝트를 만든 팀원 이름인 “한민욱컴퍼니”로 지었다.</p>

<p><img src="../../images/2025-07-02-kakaoAPI/스크린샷 2024-07-02 오후 5.25.50.png" alt="alt text" /></p>

<p>만든 어플리케이션에 들어간후 왼쪽 네비바의 앱키로 이동후 폰인의 REST API키를 확인하고 혹시모르니 메모 같은곳에 저장 해두자</p>

<p><img src="../../images/2025-07-02-kakaoAPI/스크린샷 2024-07-02 오후 5.29.58.png" alt="alt text" /></p>

<p>이후 좌측 네비바 앱키 아래에 플랫폼으로 들어가</p>

<p>web부분에서 플랫폼 설정을 해주자</p>

<p>필자는 로컬로 사용할거기 때문에 8080포트로 도메인을 설정 하였다.</p>

<p><img src="../../images/2025-07-02-kakaoAPI/스크린샷 2024-07-02 오후 5.32.15.png" alt="alt text" /></p>

<p>이후 대시모드에서 아래 설정창 -&gt; 카카오 로그인 설정하기로 들어간다.</p>

<p><img src="../../images/2024-07-08-kakaoAPI/Capture 2024-07-08 오후 7.42.28.png" alt="alt text" /></p>

<p>왼쪽 네이베깅션 바에 들어가서 카카오로그인 으로 들어갈시 아래에</p>

<p>Redirect url이 있는데 여기에 내가 oAuth rediect url을 설정하면된다.</p>

<p>이후 동의 항목에 이메일이 안되어 찾아보니 비즈앱으로 변환이 필요하다하여</p>

<p>앱의 사진등록후 개인 사용자로 등록하여 비즈앱을 등록하였다.</p>

<p><img src="../../images/2024-07-08-kakaoAPI/Capture 2024-07-08 오후 7.44.14.png" alt="alt text" /></p>

<p>동의항목에는 이렇게 닉네임 프로필 사진 이메일을 가져오도록 하였다.</p>

<p>이후 카카오 api key와 redirecturi을 등록해줘야하는데</p>

<p>개인정보이므로 application-private.properties 에다가 등록해 두었다.</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">kakao</span><span class="o">.</span><span class="na">api_key</span><span class="o">=</span><span class="n">키정보</span>
<span class="n">kakao</span><span class="o">.</span><span class="na">redirect_uri</span><span class="o">=</span><span class="nl">http:</span><span class="c1">//localhost:8080/auth/login/kakao</span>
</code></pre></div></div>

<p>이후 사용하기위해 kakaoapi라는 클래스를만들어</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">package</span> <span class="nn">com.my.interrior.common</span><span class="o">;</span>

<span class="kn">import</span> <span class="nn">org.springframework.beans.factory.annotation.Value</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">org.springframework.stereotype.Component</span><span class="o">;</span>

<span class="kn">import</span> <span class="nn">lombok.Getter</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">lombok.Setter</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">lombok.ToString</span><span class="o">;</span>

<span class="nd">@Getter</span>
<span class="nd">@ToString</span>
<span class="nd">@Setter</span>
<span class="nd">@Component</span>
<span class="kd">public</span> <span class="kd">class</span> <span class="nc">KakaoApi</span> <span class="o">{</span>

	<span class="nd">@Value</span><span class="o">(</span><span class="s">"${kakao.api_key}"</span><span class="o">)</span>
	<span class="kd">private</span> <span class="nc">String</span> <span class="n">kakaoApiKey</span><span class="o">;</span>
	
	<span class="nd">@Value</span><span class="o">(</span><span class="s">"${kakao.redirect_uri}"</span><span class="o">)</span>
	<span class="kd">private</span> <span class="nc">String</span> <span class="n">kakaoRedirectUri</span><span class="o">;</span>
<span class="o">}</span>

</code></pre></div></div>

<p>이렇게 작성</p>

<p>카카오 로그인에 들어가서 코드를 확인 해야 한다길레</p>

<p>컨트롤러에 해당 url로 들어갈시 코드가 제대로 들어오는지 확인하기 위해</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">package</span> <span class="nn">com.my.interrior.common</span><span class="o">;</span>

<span class="kn">import</span> <span class="nn">org.springframework.stereotype.Controller</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">org.springframework.web.bind.annotation.RequestMapping</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">org.springframework.web.bind.annotation.RequestParam</span><span class="o">;</span>

<span class="nd">@Controller</span>
<span class="kd">public</span> <span class="kd">class</span> <span class="nc">KakaoLoginController</span> <span class="o">{</span>

	<span class="c1">//인증 시 코드 받는 곳</span>
	<span class="nd">@RequestMapping</span><span class="o">(</span><span class="s">"/auth/login/kakao"</span><span class="o">)</span>
	<span class="kd">public</span> <span class="nc">String</span> <span class="nf">kakaoLogin</span><span class="o">(</span><span class="nd">@RequestParam</span><span class="o">(</span><span class="s">"code"</span><span class="o">)</span> <span class="nc">String</span> <span class="n">code</span><span class="o">)</span> <span class="o">{</span>
		<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"code : "</span> <span class="o">+</span> <span class="n">code</span><span class="o">);</span>
		
		<span class="k">return</span> <span class="s">"client/join"</span><span class="o">;</span>
	<span class="o">}</span>
<span class="o">}</span>

</code></pre></div></div>

<p>작성후 제대로 코드가 들어오는걸확인</p>

<p>이제 access_Token을 받아올 작업을 수행해줄 service클래스 생성 및 get accesstoken메소드 작성</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">package</span> <span class="nn">com.my.interrior.common</span><span class="o">;</span>


<span class="kn">import</span> <span class="nn">java.io.BufferedReader</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">java.io.BufferedWriter</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">java.io.IOException</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">java.io.InputStreamReader</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">java.io.OutputStreamWriter</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">java.net.HttpURLConnection</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">java.net.URL</span><span class="o">;</span>

<span class="kn">import</span> <span class="nn">org.springframework.beans.factory.annotation.Autowired</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">org.springframework.stereotype.Service</span><span class="o">;</span>

<span class="kn">import</span> <span class="nn">com.google.gson.JsonElement</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">com.google.gson.JsonParser</span><span class="o">;</span>

<span class="nd">@Service</span>
<span class="kd">public</span> <span class="kd">class</span> <span class="nc">KakaoLoginService</span> <span class="o">{</span>
	
	<span class="nd">@Autowired</span>
	<span class="kd">private</span> <span class="nc">KakaoApi</span> <span class="n">kakaoApi</span><span class="o">;</span>
	
	<span class="kd">public</span> <span class="nc">String</span> <span class="nf">getAccessToken</span> <span class="o">(</span><span class="nc">String</span> <span class="n">authorize_code</span><span class="o">)</span> <span class="o">{</span>
		<span class="nc">String</span> <span class="n">access_Token</span> <span class="o">=</span> <span class="s">""</span><span class="o">;</span>
		<span class="nc">String</span> <span class="n">refresh_Token</span> <span class="o">=</span> <span class="s">""</span><span class="o">;</span>
        <span class="nc">String</span> <span class="n">reqURL</span> <span class="o">=</span> <span class="s">"https://kauth.kakao.com/oauth/token"</span><span class="o">;</span>
        
        <span class="k">try</span> <span class="o">{</span>
            <span class="no">URL</span> <span class="n">url</span> <span class="o">=</span> <span class="k">new</span> <span class="no">URL</span><span class="o">(</span><span class="n">reqURL</span><span class="o">);</span>
            <span class="nc">HttpURLConnection</span> <span class="n">conn</span> <span class="o">=</span> <span class="o">(</span><span class="nc">HttpURLConnection</span><span class="o">)</span> <span class="n">url</span><span class="o">.</span><span class="na">openConnection</span><span class="o">();</span>
            
            <span class="c1">//    POST 요청을 위해 기본값이 false인 setDoOutput을 true로</span>
            <span class="n">conn</span><span class="o">.</span><span class="na">setRequestMethod</span><span class="o">(</span><span class="s">"POST"</span><span class="o">);</span>
            <span class="n">conn</span><span class="o">.</span><span class="na">setDoOutput</span><span class="o">(</span><span class="kc">true</span><span class="o">);</span>
            
            <span class="c1">//    POST 요청에 필요로 요구하는 파라미터 스트림을 통해 전송</span>
            <span class="nc">BufferedWriter</span> <span class="n">bw</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">BufferedWriter</span><span class="o">(</span><span class="k">new</span> <span class="nc">OutputStreamWriter</span><span class="o">(</span><span class="n">conn</span><span class="o">.</span><span class="na">getOutputStream</span><span class="o">()));</span>
            <span class="nc">StringBuilder</span> <span class="n">sb</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">StringBuilder</span><span class="o">();</span>
            <span class="n">sb</span><span class="o">.</span><span class="na">append</span><span class="o">(</span><span class="s">"grant_type=authorization_code"</span><span class="o">);</span>
            <span class="n">sb</span><span class="o">.</span><span class="na">append</span><span class="o">(</span><span class="s">"&amp;client_id="</span><span class="o">).</span><span class="na">append</span><span class="o">(</span><span class="n">kakaoApi</span><span class="o">.</span><span class="na">getKakaoApiKey</span><span class="o">());</span>
            <span class="n">sb</span><span class="o">.</span><span class="na">append</span><span class="o">(</span><span class="s">"&amp;redirect_uri="</span><span class="o">).</span><span class="na">append</span><span class="o">(</span><span class="n">kakaoApi</span><span class="o">.</span><span class="na">getKakaoRedirectUri</span><span class="o">());</span>
            <span class="n">sb</span><span class="o">.</span><span class="na">append</span><span class="o">(</span><span class="s">"&amp;code="</span> <span class="o">+</span> <span class="n">authorize_code</span><span class="o">);</span>
            <span class="n">bw</span><span class="o">.</span><span class="na">write</span><span class="o">(</span><span class="n">sb</span><span class="o">.</span><span class="na">toString</span><span class="o">());</span>
            <span class="n">bw</span><span class="o">.</span><span class="na">flush</span><span class="o">();</span>
            
            <span class="c1">//    결과 코드가 200이라면 성공</span>
            <span class="kt">int</span> <span class="n">responseCode</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="na">getResponseCode</span><span class="o">();</span>
            <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"responseCode : "</span> <span class="o">+</span> <span class="n">responseCode</span><span class="o">);</span>
 
            <span class="c1">//    요청을 통해 얻은 JSON타입의 Response 메세지 읽어오기</span>
            <span class="nc">BufferedReader</span> <span class="n">br</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">BufferedReader</span><span class="o">(</span><span class="k">new</span> <span class="nc">InputStreamReader</span><span class="o">(</span><span class="n">conn</span><span class="o">.</span><span class="na">getInputStream</span><span class="o">()));</span>
            <span class="nc">String</span> <span class="n">line</span> <span class="o">=</span> <span class="s">""</span><span class="o">;</span>
            <span class="nc">String</span> <span class="n">result</span> <span class="o">=</span> <span class="s">""</span><span class="o">;</span>
            
            <span class="k">while</span> <span class="o">((</span><span class="n">line</span> <span class="o">=</span> <span class="n">br</span><span class="o">.</span><span class="na">readLine</span><span class="o">())</span> <span class="o">!=</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span>
                <span class="n">result</span> <span class="o">+=</span> <span class="n">line</span><span class="o">;</span>
            <span class="o">}</span>
            <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"response body : "</span> <span class="o">+</span> <span class="n">result</span><span class="o">);</span>
            
            <span class="c1">//    Gson 라이브러리에 포함된 클래스로 JSON파싱 객체 생성</span>
            <span class="nc">JsonParser</span> <span class="n">parser</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">JsonParser</span><span class="o">();</span>
            <span class="nc">JsonElement</span> <span class="n">element</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="na">parse</span><span class="o">(</span><span class="n">result</span><span class="o">);</span>
            
            <span class="n">access_Token</span> <span class="o">=</span> <span class="n">element</span><span class="o">.</span><span class="na">getAsJsonObject</span><span class="o">().</span><span class="na">get</span><span class="o">(</span><span class="s">"access_token"</span><span class="o">).</span><span class="na">getAsString</span><span class="o">();</span>
            <span class="n">refresh_Token</span> <span class="o">=</span> <span class="n">element</span><span class="o">.</span><span class="na">getAsJsonObject</span><span class="o">().</span><span class="na">get</span><span class="o">(</span><span class="s">"refresh_token"</span><span class="o">).</span><span class="na">getAsString</span><span class="o">();</span>
            
            <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"access_token : "</span> <span class="o">+</span> <span class="n">access_Token</span><span class="o">);</span>
            <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"refresh_token : "</span> <span class="o">+</span> <span class="n">refresh_Token</span><span class="o">);</span>
            
            <span class="n">br</span><span class="o">.</span><span class="na">close</span><span class="o">();</span>
            <span class="n">bw</span><span class="o">.</span><span class="na">close</span><span class="o">();</span>
        <span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="nc">IOException</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span>
            <span class="c1">// TODO Auto-generated catch block</span>
            <span class="n">e</span><span class="o">.</span><span class="na">printStackTrace</span><span class="o">();</span>
        <span class="o">}</span> 
        
        <span class="k">return</span> <span class="n">access_Token</span><span class="o">;</span>
    <span class="o">}</span>
<span class="o">}</span>

</code></pre></div></div>

<p>해당 코드는 Access_Token을 가져오는 service클래스이지만 해당 기능에대해 아직다 숙지는 하지 못했으니 나중에 따로 시간을 가져 보겠다</p>

<p>우선 간단하게 설명하자면</p>

<p>내가가진 api key와 리다이렉트 url로</p>

<p>Buffered writer 요청 파라미터를 전송하고</p>

<p>bufferedreader로  응답본문을 읽어온다.</p>

<p>jsonparser를 사용하여 json객체로 파싱 하며</p>

<p>Access_token과 refresh_token을 추출</p>

<p>이후 access_token을 반환한다.</p>

<p>이후 컨트롤러 에 추가적으로 access_token을 받아온다</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">package</span> <span class="nn">com.my.interrior.common</span><span class="o">;</span>

<span class="kn">import</span> <span class="nn">org.springframework.beans.factory.annotation.Autowired</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">org.springframework.stereotype.Controller</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">org.springframework.web.bind.annotation.RequestMapping</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">org.springframework.web.bind.annotation.RequestParam</span><span class="o">;</span>

<span class="nd">@Controller</span>
<span class="kd">public</span> <span class="kd">class</span> <span class="nc">KakaoLoginController</span> <span class="o">{</span>
	
	<span class="nd">@Autowired</span>
	<span class="kd">private</span> <span class="nc">KakaoLoginService</span> <span class="n">kakaoService</span><span class="o">;</span>

	<span class="c1">//인증 시 코드 받는 곳</span>
	<span class="nd">@RequestMapping</span><span class="o">(</span><span class="s">"/auth/login/kakao"</span><span class="o">)</span>
	<span class="kd">public</span> <span class="nc">String</span> <span class="nf">kakaoLogin</span><span class="o">(</span><span class="nd">@RequestParam</span><span class="o">(</span><span class="s">"code"</span><span class="o">)</span> <span class="nc">String</span> <span class="n">code</span><span class="o">)</span> <span class="o">{</span>
		<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"code : "</span> <span class="o">+</span> <span class="n">code</span><span class="o">);</span>
		<span class="nc">String</span> <span class="n">access_Token</span> <span class="o">=</span> <span class="n">kakaoService</span><span class="o">.</span><span class="na">getAccessToken</span><span class="o">(</span><span class="n">code</span><span class="o">);</span>
		<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"controller access_token : "</span> <span class="o">+</span> <span class="n">access_Token</span><span class="o">);</span>
		
		<span class="k">return</span> <span class="s">"client/join"</span><span class="o">;</span>
	<span class="o">}</span>
<span class="o">}</span>

</code></pre></div></div>

<p>이제 access_token을 받아 왔으니 이제 유저의 정보를 가저오는것을 구현하겠다</p>

<p>아래의 코드는 service의 코드다</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="nc">HashMap</span><span class="o">&lt;</span><span class="nc">String</span><span class="o">,</span> <span class="nc">Object</span><span class="o">&gt;</span> <span class="nf">getUserInfo</span><span class="o">(</span><span class="nc">String</span> <span class="n">access_Token</span><span class="o">){</span>
		<span class="nc">HashMap</span><span class="o">&lt;</span><span class="nc">String</span><span class="o">,</span> <span class="nc">Object</span><span class="o">&gt;</span> <span class="n">userInfo</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">HashMap</span><span class="o">&lt;&gt;();</span>
	    <span class="nc">String</span> <span class="n">reqURL</span> <span class="o">=</span> <span class="s">"https://kapi.kakao.com/v2/user/me"</span><span class="o">;</span>
	    <span class="k">try</span> <span class="o">{</span>
	        <span class="no">URL</span> <span class="n">url</span> <span class="o">=</span> <span class="k">new</span> <span class="no">URL</span><span class="o">(</span><span class="n">reqURL</span><span class="o">);</span>
	        <span class="nc">HttpURLConnection</span> <span class="n">conn</span> <span class="o">=</span> <span class="o">(</span><span class="nc">HttpURLConnection</span><span class="o">)</span> <span class="n">url</span><span class="o">.</span><span class="na">openConnection</span><span class="o">();</span>
	        <span class="n">conn</span><span class="o">.</span><span class="na">setRequestMethod</span><span class="o">(</span><span class="s">"POST"</span><span class="o">);</span>
	        
	        <span class="c1">//    요청에 필요한 Header에 포함될 내용</span>
	        <span class="n">conn</span><span class="o">.</span><span class="na">setRequestProperty</span><span class="o">(</span><span class="s">"Authorization"</span><span class="o">,</span> <span class="s">"Bearer "</span> <span class="o">+</span> <span class="n">access_Token</span><span class="o">);</span>
	        
	        <span class="kt">int</span> <span class="n">responseCode</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="na">getResponseCode</span><span class="o">();</span>
	        <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"responseCode : "</span> <span class="o">+</span> <span class="n">responseCode</span><span class="o">);</span>
	        
	        <span class="nc">BufferedReader</span> <span class="n">br</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">BufferedReader</span><span class="o">(</span><span class="k">new</span> <span class="nc">InputStreamReader</span><span class="o">(</span><span class="n">conn</span><span class="o">.</span><span class="na">getInputStream</span><span class="o">()));</span>
	        
	        <span class="nc">String</span> <span class="n">line</span> <span class="o">=</span> <span class="s">""</span><span class="o">;</span>
	        <span class="nc">String</span> <span class="n">result</span> <span class="o">=</span> <span class="s">""</span><span class="o">;</span>
	        
	        <span class="k">while</span> <span class="o">((</span><span class="n">line</span> <span class="o">=</span> <span class="n">br</span><span class="o">.</span><span class="na">readLine</span><span class="o">())</span> <span class="o">!=</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span>
	            <span class="n">result</span> <span class="o">+=</span> <span class="n">line</span><span class="o">;</span>
	        <span class="o">}</span>
	        <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"response body : "</span> <span class="o">+</span> <span class="n">result</span><span class="o">);</span>
	        
	        <span class="nc">JsonParser</span> <span class="n">parser</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">JsonParser</span><span class="o">();</span>
	        <span class="nc">JsonElement</span> <span class="n">element</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="na">parse</span><span class="o">(</span><span class="n">result</span><span class="o">);</span>
	        
	        <span class="nc">JsonObject</span> <span class="n">properties</span> <span class="o">=</span> <span class="n">element</span><span class="o">.</span><span class="na">getAsJsonObject</span><span class="o">().</span><span class="na">get</span><span class="o">(</span><span class="s">"properties"</span><span class="o">).</span><span class="na">getAsJsonObject</span><span class="o">();</span>
	        <span class="nc">JsonObject</span> <span class="n">kakao_account</span> <span class="o">=</span> <span class="n">element</span><span class="o">.</span><span class="na">getAsJsonObject</span><span class="o">().</span><span class="na">get</span><span class="o">(</span><span class="s">"kakao_account"</span><span class="o">).</span><span class="na">getAsJsonObject</span><span class="o">();</span>
	        
	        <span class="nc">String</span> <span class="n">nickname</span> <span class="o">=</span> <span class="n">properties</span><span class="o">.</span><span class="na">getAsJsonObject</span><span class="o">().</span><span class="na">get</span><span class="o">(</span><span class="s">"nickname"</span><span class="o">).</span><span class="na">getAsString</span><span class="o">();</span>
	        <span class="nc">String</span> <span class="n">email</span> <span class="o">=</span> <span class="n">kakao_account</span><span class="o">.</span><span class="na">getAsJsonObject</span><span class="o">().</span><span class="na">get</span><span class="o">(</span><span class="s">"email"</span><span class="o">).</span><span class="na">getAsString</span><span class="o">();</span>
	        
	        <span class="n">userInfo</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">"nickname"</span><span class="o">,</span> <span class="n">nickname</span><span class="o">);</span>
	        <span class="n">userInfo</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">"email"</span><span class="o">,</span> <span class="n">email</span><span class="o">);</span>
	        
	    <span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="nc">IOException</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span>
	        <span class="c1">// TODO Auto-generated catch block</span>
	        <span class="n">e</span><span class="o">.</span><span class="na">printStackTrace</span><span class="o">();</span>
	    <span class="o">}</span>
	    
	    <span class="k">return</span> <span class="n">userInfo</span><span class="o">;</span>
	<span class="o">}</span>
</code></pre></div></div>

<p>클라이언트마다 제공 정보의 종의여부가 다를 수 있기 때문에 mashMap타입을 통해 정보를 받는다</p>

<p>reqUrl은 카카오 사용자 정보 api의 엔드포인트 url이다.</p>

<p>대부분은 위에서 access_token받아오기와 비슷하지만 아래에 hashmap에 저장하는곳만 조금 다르다</p>]]></content><author><name>JaeHwan</name><email>jelly0379@gmail.com</email></author><category term="coding" /><category term="blog" /><category term="백준" /><summary type="html"><![CDATA[카카오 로그인]]></summary></entry><entry><title type="html">프로그래머스) day 1 기초 코</title><link href="https://daramggi.github.io/coding/Programmers_Basic(D1)/" rel="alternate" type="text/html" title="프로그래머스) day 1 기초 코" /><published>2024-07-07T00:00:00+09:00</published><updated>2024-07-07T00:00:00+09:00</updated><id>https://daramggi.github.io/coding/Programmers_Basic(D1)</id><content type="html" xml:base="https://daramggi.github.io/coding/Programmers_Basic(D1)/"><![CDATA[<h1 id="대소문자-출력">대소문자 출력</h1>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="nn">java.util.Scanner</span><span class="o">;</span>

<span class="kd">public</span> <span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="nc">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="o">{</span>
        <span class="nc">Scanner</span> <span class="n">sc</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Scanner</span><span class="o">(</span><span class="nc">System</span><span class="o">.</span><span class="na">in</span><span class="o">);</span>
        <span class="nc">String</span> <span class="n">a</span> <span class="o">=</span> <span class="n">sc</span><span class="o">.</span><span class="na">next</span><span class="o">();</span>
        <span class="nc">String</span> <span class="n">x</span> <span class="o">=</span> <span class="s">""</span><span class="o">;</span>
        
        <span class="k">for</span><span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">a</span><span class="o">.</span><span class="na">length</span><span class="o">();</span> <span class="n">i</span><span class="o">++){</span>
            <span class="kt">int</span> <span class="n">tmp</span> <span class="o">=</span> <span class="o">(</span><span class="kt">int</span><span class="o">)</span><span class="n">a</span><span class="o">.</span><span class="na">charAt</span><span class="o">(</span><span class="n">i</span><span class="o">);</span>
            <span class="k">if</span><span class="o">(</span> <span class="o">(</span><span class="mi">65</span> <span class="o">&lt;=</span> <span class="n">tmp</span><span class="o">)</span> <span class="o">&amp;&amp;</span> <span class="o">(</span><span class="n">tmp</span> <span class="o">&lt;=</span> <span class="mi">90</span><span class="o">)){</span>
                <span class="n">x</span> <span class="o">+=</span> <span class="o">(</span><span class="kt">char</span><span class="o">)(</span><span class="n">tmp</span> <span class="o">+</span> <span class="mi">32</span><span class="o">);</span>
            <span class="o">}</span><span class="k">else</span> <span class="k">if</span><span class="o">((</span><span class="mi">97</span> <span class="o">&lt;=</span> <span class="n">tmp</span><span class="o">)</span> <span class="o">&amp;&amp;</span> <span class="o">(</span><span class="n">tmp</span> <span class="o">&lt;=</span> <span class="mi">122</span><span class="o">)){</span>
                <span class="n">x</span> <span class="o">+=(</span><span class="kt">char</span><span class="o">)(</span><span class="n">tmp</span> <span class="o">-</span> <span class="mi">32</span><span class="o">);</span>
            <span class="o">}</span><span class="k">else</span><span class="o">{</span>
                <span class="n">x</span> <span class="o">+=</span> <span class="o">(</span><span class="kt">char</span><span class="o">)</span><span class="n">tmp</span><span class="o">;</span>
            <span class="o">}</span>
        <span class="o">}</span>
        <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">x</span><span class="o">);</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<p>받은 글자들을 아스키코드 char로 변환후에 소문자일시 대문자 아스키코드로 낮추고</p>

<p>대문자 아스키 코드로 높인디.</p>

<h1 id="특수문자-출력하기">특수문자 출력하기</h1>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="nn">java.util.Scanner</span><span class="o">;</span>

<span class="kd">public</span> <span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="nc">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="o">{</span>
        <span class="nc">String</span> <span class="n">specialChars</span> <span class="o">=</span> <span class="s">"!@#$%^&amp;*(\\'\"&lt;&gt;?:;"</span><span class="o">;</span>
        <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">specialChars</span><span class="o">);</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>]]></content><author><name>JaeHwan</name><email>jelly0379@gmail.com</email></author><category term="coding" /><category term="blog" /><category term="백준" /><summary type="html"><![CDATA[대소문자 출력]]></summary></entry><entry><title type="html">프로그래머스) day 2 기초 코딩</title><link href="https://daramggi.github.io/coding/Programmers_Basic(D2)/" rel="alternate" type="text/html" title="프로그래머스) day 2 기초 코딩" /><published>2024-07-07T00:00:00+09:00</published><updated>2024-07-07T00:00:00+09:00</updated><id>https://daramggi.github.io/coding/Programmers_Basic(D2)</id><content type="html" xml:base="https://daramggi.github.io/coding/Programmers_Basic(D2)/"><![CDATA[<h1 id="덧셈식-출력">덧셈식 출력</h1>
<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="nn">java.util.Scanner</span><span class="o">;</span>

<span class="kd">public</span> <span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="nc">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="o">{</span>
        <span class="nc">Scanner</span> <span class="n">sc</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Scanner</span><span class="o">(</span><span class="nc">System</span><span class="o">.</span><span class="na">in</span><span class="o">);</span>
        <span class="kt">int</span> <span class="n">a</span> <span class="o">=</span> <span class="n">sc</span><span class="o">.</span><span class="na">nextInt</span><span class="o">();</span>
        <span class="kt">int</span> <span class="n">b</span> <span class="o">=</span> <span class="n">sc</span><span class="o">.</span><span class="na">nextInt</span><span class="o">();</span>

        <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">a</span> <span class="o">+</span> <span class="s">" + "</span> <span class="o">+</span> <span class="n">b</span> <span class="o">+</span> <span class="s">" = "</span> <span class="o">+</span> <span class="o">(</span><span class="n">a</span><span class="o">+</span><span class="n">b</span><span class="o">));</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<h1 id="문자열-붙여서-출력">문자열 붙여서 출력</h1>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="nn">java.util.Scanner</span><span class="o">;</span>

<span class="kd">public</span> <span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="nc">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="o">{</span>
        <span class="nc">Scanner</span> <span class="n">sc</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Scanner</span><span class="o">(</span><span class="nc">System</span><span class="o">.</span><span class="na">in</span><span class="o">);</span>
        <span class="nc">String</span> <span class="n">a</span> <span class="o">=</span> <span class="n">sc</span><span class="o">.</span><span class="na">next</span><span class="o">();</span>
        <span class="nc">String</span> <span class="n">b</span> <span class="o">=</span> <span class="n">sc</span><span class="o">.</span><span class="na">next</span><span class="o">();</span>
        <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">print</span><span class="o">(</span><span class="n">a</span><span class="o">.</span><span class="na">replaceAll</span><span class="o">(</span><span class="s">" "</span><span class="o">,</span> <span class="s">""</span><span class="o">));</span>
        <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">print</span><span class="o">(</span><span class="n">b</span><span class="o">.</span><span class="na">replaceAll</span><span class="o">(</span><span class="s">" "</span><span class="o">,</span> <span class="s">""</span><span class="o">));</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<p>replaceAll를 사용해 모든 공백 제거</p>

<h1 id="문자열-돌리기">문자열 돌리기</h1>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="nn">java.util.Scanner</span><span class="o">;</span>

<span class="kd">public</span> <span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="nc">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="o">{</span>
        <span class="nc">Scanner</span> <span class="n">sc</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Scanner</span><span class="o">(</span><span class="nc">System</span><span class="o">.</span><span class="na">in</span><span class="o">);</span>
        <span class="nc">String</span> <span class="n">a</span> <span class="o">=</span> <span class="n">sc</span><span class="o">.</span><span class="na">next</span><span class="o">();</span>
        
        <span class="k">for</span><span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">a</span><span class="o">.</span><span class="na">length</span><span class="o">();</span> <span class="n">i</span><span class="o">++){</span>
            <span class="kt">char</span> <span class="n">c</span> <span class="o">=</span> <span class="n">a</span><span class="o">.</span><span class="na">charAt</span><span class="o">(</span><span class="n">i</span><span class="o">);</span>
            <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">c</span><span class="o">);</span>
        <span class="o">}</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<h1 id="홀짝-구분하기">홀짝 구분하기</h1>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="nn">java.util.Scanner</span><span class="o">;</span>

<span class="kd">public</span> <span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="nc">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="o">{</span>
        <span class="nc">Scanner</span> <span class="n">sc</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Scanner</span><span class="o">(</span><span class="nc">System</span><span class="o">.</span><span class="na">in</span><span class="o">);</span>
        <span class="kt">int</span> <span class="n">n</span> <span class="o">=</span> <span class="n">sc</span><span class="o">.</span><span class="na">nextInt</span><span class="o">();</span>
        <span class="k">if</span><span class="o">(</span><span class="n">n</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">0</span><span class="o">){</span>
            <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">n</span> <span class="o">+</span> <span class="s">" is even"</span><span class="o">);</span>
        <span class="o">}</span>
        <span class="k">else</span><span class="o">{</span>
            <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span> <span class="n">n</span> <span class="o">+</span> <span class="s">" is odd"</span><span class="o">);</span>
        <span class="o">}</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<h1 id="문자열-겹쳐쓰기">문자열 겹쳐쓰기</h1>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="nc">String</span> <span class="nf">solution</span><span class="o">(</span><span class="nc">String</span> <span class="n">my_string</span><span class="o">,</span> <span class="nc">String</span> <span class="n">overwrite_string</span><span class="o">,</span> <span class="kt">int</span> <span class="n">s</span><span class="o">)</span> <span class="o">{</span>
        <span class="kt">char</span><span class="o">[]</span> <span class="n">arr</span> <span class="o">=</span> <span class="n">my_string</span><span class="o">.</span><span class="na">toCharArray</span><span class="o">();</span>
        <span class="kt">char</span><span class="o">[]</span> <span class="n">arr2</span> <span class="o">=</span> <span class="n">overwrite_string</span><span class="o">.</span><span class="na">toCharArray</span><span class="o">();</span>
        <span class="kt">int</span> <span class="n">z</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
        <span class="k">for</span><span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">overwrite_string</span><span class="o">.</span><span class="na">length</span><span class="o">();</span> <span class="n">i</span><span class="o">++){</span>
            <span class="n">arr</span><span class="o">[</span><span class="n">s</span><span class="o">]</span> <span class="o">=</span> <span class="n">arr2</span><span class="o">[</span><span class="n">z</span><span class="o">];</span>
            <span class="n">s</span><span class="o">++;</span>
            <span class="n">z</span><span class="o">++;</span>
        <span class="o">}</span>
        <span class="nc">String</span> <span class="n">answer</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">String</span><span class="o">(</span><span class="n">arr</span><span class="o">);</span>
        <span class="k">return</span> <span class="n">answer</span><span class="o">;</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<p>다른 사람 풀이</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="nc">String</span> <span class="nf">solution</span><span class="o">(</span><span class="nc">String</span> <span class="n">my_string</span><span class="o">,</span> <span class="nc">String</span> <span class="n">overwrite_string</span><span class="o">,</span> <span class="kt">int</span> <span class="n">s</span><span class="o">)</span> <span class="o">{</span>
        <span class="kt">char</span><span class="o">[]</span> <span class="n">my_chars</span> <span class="o">=</span> <span class="n">my_string</span><span class="o">.</span><span class="na">toCharArray</span><span class="o">();</span>
        <span class="kt">char</span><span class="o">[]</span> <span class="n">overwrite_chars</span> <span class="o">=</span> <span class="n">overwrite_string</span><span class="o">.</span><span class="na">toCharArray</span><span class="o">();</span>
        <span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span><span class="o">=</span><span class="mi">0</span><span class="o">;</span> <span class="n">i</span><span class="o">&lt;</span><span class="n">overwrite_chars</span><span class="o">.</span><span class="na">length</span><span class="o">;</span> <span class="n">i</span><span class="o">++)</span> <span class="o">{</span>
            <span class="n">my_chars</span><span class="o">[</span><span class="n">s</span> <span class="o">+</span> <span class="n">i</span><span class="o">]</span> <span class="o">=</span> <span class="n">overwrite_chars</span><span class="o">[</span><span class="n">i</span><span class="o">];</span>
        <span class="o">}</span>
        <span class="k">return</span> <span class="nc">String</span><span class="o">.</span><span class="na">valueOf</span><span class="o">(</span><span class="n">my_chars</span><span class="o">);</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>]]></content><author><name>JaeHwan</name><email>jelly0379@gmail.com</email></author><category term="coding" /><category term="blog" /><category term="프로그래머스" /><summary type="html"><![CDATA[덧셈식 출력 ```java import java.util.Scanner;]]></summary></entry><entry><title type="html">프로그래머스)신규 아이디 추천</title><link href="https://daramggi.github.io/coding/Programmers_01/" rel="alternate" type="text/html" title="프로그래머스)신규 아이디 추천" /><published>2024-07-06T00:00:00+09:00</published><updated>2024-07-06T00:00:00+09:00</updated><id>https://daramggi.github.io/coding/Programmers_01</id><content type="html" xml:base="https://daramggi.github.io/coding/Programmers_01/"><![CDATA[<h1 id="문제-이해하기">문제 이해하기</h1>

<p>아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램 만들기</p>

<p>아이디는 3자 이상 15자 이하</p>

<p>아이디는 알파벳 소문자, 숫자, -, _, . 만 가능</p>

<p>단, .는 처음과 끝에 사용할수 없음+ 연속 사용 불가능</p>

<p>New_id</p>

<ul>
  <li>다 소문자</li>
  <li>소문자, 숫자, - ,_ , . 제외한 모든 무자 제거</li>
  <li>마침표가 두번 이상 연속되면 하나로 치환</li>
  <li>마침표가 처음이나 끝에 위차하면 제거</li>
  <li>빈문자열이라면 a 대입</li>
  <li>길이가 16자 이상이면 15문자를 제외한 나머지 제거,</li>
  <li>제거후에 마지막 마침표가 . 이면 .제거</li>
  <li>길이가 2자 이하라면 마지막 문자를 3이 될때까지 반복</li>
</ul>

<h3 id="정답">정답</h3>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="nn">java.io.BufferedReader</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">java.io.IOException</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">java.io.InputStreamReader</span><span class="o">;</span>


<span class="kd">public</span> <span class="kd">class</span> <span class="nc">Main</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="nc">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="kd">throws</span> <span class="nc">IOException</span> <span class="o">{</span>
        <span class="nc">BufferedReader</span> <span class="n">br</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">BufferedReader</span><span class="o">(</span><span class="k">new</span> <span class="nc">InputStreamReader</span><span class="o">(</span><span class="nc">System</span><span class="o">.</span><span class="na">in</span><span class="o">));</span>
        
        <span class="nc">String</span> <span class="n">new_id</span> <span class="o">=</span> <span class="n">br</span><span class="o">.</span><span class="na">readLine</span><span class="o">();</span>
        
        <span class="c1">// 1단계 소문자 변환</span>
        <span class="n">new_id</span> <span class="o">=</span> <span class="n">new_id</span><span class="o">.</span><span class="na">toLowerCase</span><span class="o">();</span>
        <span class="c1">//1단계 출력</span>
        <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"변환이 되었을까용 : "</span> <span class="o">+</span> <span class="n">new_id</span><span class="o">);</span>
        <span class="c1">//2단계</span>
        <span class="n">new_id</span> <span class="o">=</span> <span class="n">new_id</span><span class="o">.</span><span class="na">replaceAll</span><span class="o">(</span><span class="s">"[^a-z0-9-_.]"</span><span class="o">,</span> <span class="s">""</span><span class="o">);</span>
        <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">new_id</span><span class="o">);</span>  
        <span class="c1">//3단계 마침표 여러게 있떄 하나로 변환</span>
        <span class="n">new_id</span> <span class="o">=</span> <span class="n">new_id</span><span class="o">.</span><span class="na">replaceAll</span><span class="o">(</span><span class="s">"\\.+"</span><span class="o">,</span> <span class="s">"\\."</span><span class="o">);</span>
        <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">new_id</span><span class="o">);</span>
        <span class="c1">//4단계 마침표가 처음에 있을때 제거</span>
        <span class="c1">//char로 첫번째 인덱스를 불러오고</span>
        <span class="c1">//substring으로 1번 문자열부터 시작하면 0번 문자열인 . 이 사라지게된다.</span>
        <span class="kt">char</span> <span class="n">firstChar</span> <span class="o">=</span> <span class="n">new_id</span><span class="o">.</span><span class="na">charAt</span><span class="o">(</span><span class="mi">0</span><span class="o">);</span>
        <span class="k">if</span><span class="o">(</span><span class="n">firstChar</span> <span class="o">==</span> <span class="sc">'.'</span><span class="o">){</span>
            <span class="n">new_id</span> <span class="o">=</span> <span class="n">new_id</span><span class="o">.</span><span class="na">substring</span><span class="o">(</span><span class="mi">1</span><span class="o">);</span>
        <span class="o">}</span>
        <span class="c1">//new_id = new_id.replaceFirst("\\.", "");</span>
        <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">new_id</span><span class="o">);</span>
        <span class="c1">//4단계 마침표가 마지막에 있을때 제거</span>
        <span class="n">new_id</span> <span class="o">=</span> <span class="n">new_id</span><span class="o">.</span><span class="na">replaceFirst</span><span class="o">(</span><span class="s">"\\.$"</span><span class="o">,</span> <span class="s">""</span><span class="o">);</span>
        <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">new_id</span><span class="o">);</span>
        <span class="c1">//5단계 빈문자열</span>
        <span class="k">if</span> <span class="o">(</span><span class="n">new_id</span><span class="o">.</span><span class="na">isEmpty</span><span class="o">())</span> <span class="o">{</span>
            <span class="n">new_id</span> <span class="o">=</span> <span class="s">"a"</span><span class="o">;</span>
        <span class="o">}</span>
        <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">new_id</span><span class="o">);</span>
        <span class="c1">//6단계 15자 이상 쳐네기 substring 0부터 15 전까지만 출력</span>
        <span class="k">if</span><span class="o">(</span><span class="n">new_id</span><span class="o">.</span><span class="na">length</span><span class="o">()</span> <span class="o">&gt;</span> <span class="mi">15</span><span class="o">){</span>
            <span class="n">new_id</span> <span class="o">=</span> <span class="n">new_id</span><span class="o">.</span><span class="na">substring</span><span class="o">(</span><span class="mi">0</span><span class="o">,</span> <span class="mi">15</span><span class="o">);</span>
        <span class="o">}</span>
        <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">new_id</span><span class="o">);</span>
        <span class="c1">//7단계 제거 후 마침표가 마지막에 있을때  제거</span>
        <span class="n">new_id</span> <span class="o">=</span> <span class="n">new_id</span><span class="o">.</span><span class="na">replaceFirst</span><span class="o">(</span><span class="s">"\\.$"</span><span class="o">,</span> <span class="s">""</span><span class="o">);</span>
        <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">new_id</span><span class="o">);</span>

        <span class="c1">//8단계 길이가 2자 이하일떄 마지막 문자 를 3이될때까지 반복</span>
        <span class="kt">char</span> <span class="n">lastChar</span> <span class="o">=</span> <span class="n">new_id</span><span class="o">.</span><span class="na">charAt</span><span class="o">(</span><span class="n">new_id</span><span class="o">.</span><span class="na">length</span><span class="o">()</span> <span class="o">-</span> <span class="mi">1</span><span class="o">);</span>
        <span class="k">if</span><span class="o">(</span><span class="n">new_id</span><span class="o">.</span><span class="na">length</span><span class="o">()</span> <span class="o">&lt;</span> <span class="mi">3</span><span class="o">){</span>
            <span class="k">while</span><span class="o">(</span><span class="n">new_id</span><span class="o">.</span><span class="na">length</span><span class="o">()</span> <span class="o">&lt;</span> <span class="mi">3</span><span class="o">){</span>
                <span class="n">new_id</span> <span class="o">=</span> <span class="n">new_id</span> <span class="o">+</span> <span class="n">lastChar</span><span class="o">;</span>
            <span class="o">}</span>
        <span class="o">}</span>
     
        
        <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">new_id</span><span class="o">);</span>

        
    <span class="o">}</span>
<span class="o">}</span>

</code></pre></div></div>

<h3 id="해당-문제를-풀며-배워간점">해당 문제를 풀며 배워간점</h3>

<p>정규식, substring, replace</p>]]></content><author><name>JaeHwan</name><email>jelly0379@gmail.com</email></author><category term="coding" /><category term="blog" /><category term="프로그래머스" /><summary type="html"><![CDATA[문제 이해하기]]></summary></entry></feed>