<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>anjiyoo</title>
        <link>https://velog.io/</link>
        <description>기록으로 흔적을 남기는 것을 좋아합니다</description>
        <lastBuildDate>Fri, 31 Jan 2025 14:12:16 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>anjiyoo</title>
            <url>https://velog.velcdn.com/images/yoiseau_/profile/7e2b5ea8-8fdd-4583-bd4b-e9441d53837d/image.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. anjiyoo. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/yoiseau_" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[개발 우선순위는 어떻게 정할까?]]></title>
            <link>https://velog.io/@yoiseau_/%EA%B0%9C%EB%B0%9C-%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84%EB%8A%94-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%A0%95%ED%95%A0%EA%B9%8C</link>
            <guid>https://velog.io/@yoiseau_/%EA%B0%9C%EB%B0%9C-%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84%EB%8A%94-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%A0%95%ED%95%A0%EA%B9%8C</guid>
            <pubDate>Fri, 31 Jan 2025 14:12:16 GMT</pubDate>
            <description><![CDATA[<h3 id="팀-프로젝트-회고-욕심과-현실-사이에서-균형-잡기">팀 프로젝트 회고: 욕심과 현실 사이에서 균형 잡기</h3>
<p>팀프로젝트 회고를 하면서 가장 아쉬웠던 점은 프로젝트 볼륨 조절이었다. 멋사에서 진행한 마지막 팀프로젝트로 <strong>앱 트리플</strong>을 <strong>웹으로 클론 코딩 하는 프로젝트</strong>였다. </p>
<p>긴 회의 끝에 주제를 확정하고 앱 트리플의 모든 기능을 리스트업하여 기능 명세서를 작성했다. 주요 기능을 선별하고 이를 구현하기 위해 필요한 작업들을 정리했다. 이 과정에서 프로젝트의 규모가 상당히 크다는 생각이 들었지만 </p>
<p><strong>&quot;주요 기능을 구현하지 못하면 팀 프로젝트의 의미가 있을까?&quot; 라는 고민도 동시에 들었다.</strong> </p>
<p>결국 정말 필요한 핵심 기능만 남기고 나머지는 2순위, 3순위로 나눠 개발을 진행했다. 하지만 욕심을 덜어냈다고 생각했던 프로젝트는 여전히 만만치 않았다...</p>
<br>

<h3 id="계획과-현실의-괴리">계획과 현실의 괴리</h3>
<p>프로젝트가 마무리되고 회고를 진행했다. 계획한 일정대로 개발이 진행되지 않았고 일부 기능은 구현조차 못 했다.</p>
<blockquote>
<p>프로젝트 초기 기획은 다람쥐가 도토리를 모으듯 하면 안 된다. 🐿️</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/yoiseau_/post/d2c27001-e14e-4fc7-ad76-60e4184742c4/image.jpg" alt=""></p>
<p>기능 구현에 실패한 이유는 여러 가지가 있겠지만 가장 큰 문제는 기능의 우선순위를 명확하게 정하지 못한 것이었다. &quot;이 기능도 중요하고 저 기능도 넣어야지&quot;라는 생각이 나비효과처럼 결국 일정 지연으로 이어진 것이다.</p>
<br>

<h3 id="우선순위-방법론--moscow-모델">우선순위 방법론 : MoSCoW 모델</h3>
<p>우선순위를 보다 명확하게 정할 수 있는 방법이 필요했다. 그래서 찾아본 것이 바로 MoSCoW 모델이다.</p>
<p>MoSCoW 모델은 Must Have, Should Have, Could Have, Won’t Have의 약자로, 기능을 중요도에 따라 4단계로 분류하는 방법론이다.</p>
<p><img src="https://velog.velcdn.com/images/yoiseau_/post/5ec793b8-7676-4154-8219-24af50377ee8/image.png" alt=""></p>
<blockquote>
<p>Must have(0) : 프로젝트에 있어 반드시 필요한 기능
Should have(1) : 중요하지만 시급성이 Must have 대비 낮은 기능
Could have(2) : 있으면 좋지만 꼭 있어야 할 필요는 없는 기능
Won’t have(3) : 가장 덜 중요하고 효과도 미미한 기능</p>
</blockquote>
<p>프로젝트를 기획할 때 이 프로젝트에서 가장 중요한 목표가 무엇인지에 대해 논의하였다.</p>
<ul>
<li>새로운 기술을 배우는 것이 더 중요한가?</li>
<li>아니면 기한 내에 프로젝트를 완성하는 것이 더 중요한가?</li>
</ul>
<p><strong>결론은 완성도를 높이는 것보다 기간 내에 프로젝트를 완수하는 것이 더 중요하다는 것이었다.</strong></p>
<br>

<h3 id="프로젝트-우선순위를-정하는-두가지-키워드">프로젝트 우선순위를 정하는 두가지 키워드</h3>
<p>우선순위를 설정하는 방법은 많지만 결국 핵심은 두 가지 키워드로 압축된다.</p>
<blockquote>
<p><strong>목표 달성 &amp; 실현 가능성</strong></p>
</blockquote>
<p><strong>목표 달성</strong></p>
<p>프로젝트 시작 전 설정한 목표를 이루는 것이 핵심이다.
이 목표를 달성하는 데 반드시 필요한 기능을 정확히 선정해야 한다.</p>
<p><strong>실현 가능성</strong></p>
<p>주어진 시간과 자원 내에서 실제로 구현 가능한지를 따져야 한다.
개발 일정, 팀원의 역량, 기술적인 복잡성을 고려해야 한다.
이 두 가지 요소를 잘 따져서 <strong>&quot;정말 필요한 기능만 구현하는 것&quot;</strong>이 프로젝트의 성패를 좌우한다.</p>
<p>효율적인 프로젝트 관리를 위해서는 팀원들이 함께 고민하며 우선순위를 현실적으로 조정하는 과정이 반드시 필요하다.</p>
<blockquote>
<p>다같이 힘을 합쳐 현실적인 목표를 세우고 실현 가능한 계획을 세우는 것이 성공적인 프로젝트의 첫걸음이다. 🔥</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[HTTPS와 SSL]]></title>
            <link>https://velog.io/@yoiseau_/HTTPS%EC%99%80-SSL</link>
            <guid>https://velog.io/@yoiseau_/HTTPS%EC%99%80-SSL</guid>
            <pubDate>Sat, 25 Jan 2025 12:57:49 GMT</pubDate>
            <description><![CDATA[<h3 id="https-란">HTTPS 란?</h3>
<p>HTTP는 Hypertext Transfer Protocol의 약자로 HTML을 전송하기 위한 통신규약이다.
HTTPS(Hypertext Transfer Protocol Over Secure Socket Layer)는 보안이 강화된 HTTP이다. HTTP는 암호화되지 않은 방법으로 데이터를 전송하기 때문에 서버와 클라이언트가 주고 받는 메시지를 보는 것이 매우 쉽다. 이를 보완한 것이 HTTPS 이다.</p>
<blockquote>
<p>HTTPS 프로토콜을 사용하기 위해서는 인증 기관(CA)로부터 SSL 인증서를 발급받아야 한다.</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/yoiseau_/post/b854e93b-6dba-4f19-bf62-993eb09eb3fa/image.png" alt=""></p>
<br>

<h3 id="ssl-이란">SSL 이란?</h3>
<p>초기 웹에서 데이터는 누구나 가로채면 읽을 수 있는 일반 텍스트 형태로 전송되었다. 이러한 문제로 인터넷 통신의 개인정보 보호, 인증, 데이터 무결성을 보장하기 위해 Netscape가 SSL을 개발하였다.</p>
<p>SSL(Secure Scoekts Layer)은 암호화 기반 인터넷 보안 프로토콜이다. 전달되는 모든 데이터를 암호화하고 특정한 유형의 사이버 공격도 차단한다. (SSL은 TLS 암호화의 전신이며 TLS는 SSL의 업데이트 버전이다)
SSL/TLS 를 사용하는 웹사이트 URL은 HTTP 대신 HTTPS가 사용된다.</p>
<p><img src="https://velog.velcdn.com/images/yoiseau_/post/fc88e65b-e29a-4ab0-a9bd-07b93d4dab5f/image.png" alt=""></p>
<br>

<h3 id="암호화-방식">암호화 방식</h3>
<p>SSL 인증서의 동작 원리를 이해하기 위해선 암호화 방식을 이해하고 있어야 한다.</p>
<h4 id="1-대칭키symmetric-key">1. 대칭키(Symmetric Key)</h4>
<p>암호화와 복호화에 같은 키를 사용하는 알고리즘을 의미한다. 대칭키는 동일한 키를 주고받기 때문에 속도가 매우 빠르지만 대칭키 전달과정에서 해킹 위험에 노출된다. 이를 보완하기 위해 비대칭키(공개키)라는 방식이 등장하였다.</p>
<ul>
<li>암호화 : 어떤 정보를 알아볼 수 없게 만드는 행위</li>
<li>복호화 : 암호화된 정보를 알아볼 수 있게 만드는 행위</li>
</ul>
<p><img src="https://velog.velcdn.com/images/yoiseau_/post/39db609a-9850-4634-9f75-5cb654bb3bd7/image.png" alt=""></p>
<h4 id="2-비대칭키asymetric-key">2. 비대칭키(Asymetric Key)</h4>
<p>암호화와 복호화에 사용하는 암호키를 분리한(서로 다른 두 개의 키) 알고리즘이다. 이 두 키는 공개키와 개인키라고 부르고 한 쌍으로 존재한다. 공개키는 누구에게나 공개될 수 있지만 개인키는 한쪽에서만 사용한다. 공개키로 암호화된 데이터는 해당 개인키로만 복호화할 수 있다.</p>
<br>

<h3 id="ssl-인증서-동작-원리">SSL 인증서 동작 원리</h3>
<h4 id="1-ssl-인증서-발급-과정">1. SSL 인증서 발급 과정</h4>
<p>서버에서 HTTPS 프로토콜을 사용하기 위해 SSL 인증서를 발급받는 과정은 아래와 같다.</p>
<p><img src="https://velog.velcdn.com/images/yoiseau_/post/900b8f7d-acca-4781-a75e-12eaea0cefdf/image.png" alt=""></p>
<blockquote>
<ol>
<li>(서버) 공개키와 비밀키를 생성</li>
<li>(서버 &gt; CA) 서버는 인증서를 발급받기 위해 CA에 [서버의 공개키, 서버의 각종 정보] 제공</li>
<li>(CA) 서버로부터 받은 정보를 담아 SSL 인증서를 발급</li>
<li>(CA) 인증서를 서명하기위해 CA의 공개키와 비밀키를 생성, CA의 비밀키를 이용해 인증서를 서명</li>
<li>(CA &gt; 서버) 서명된 SSL 인증서를 서버에 전달</li>
</ol>
</blockquote>
<h4 id="2ssl-인증서를-통해-암호화된-데이터를-주고-받는-과정">2.SSL 인증서를 통해 암호화된 데이터를 주고 받는 과정</h4>
<p><img src="https://velog.velcdn.com/images/yoiseau_/post/1f9c9b4d-7d48-458e-90ab-4edaeaccb3bd/image.png" alt=""></p>
<blockquote>
<ol start="6">
<li>클라이언트(웹 브라우저)가 서버로 연결 시도</li>
<li>서버는 Certificate 패킷을 통해 서버의 SSL 인증서를 전달</li>
<li>클라이언트는 서버의 SSL 인증서를 검증 &gt; CA의 공개키를 이용해 서명을 복호화 &gt; 복호화하여 나온 해쉬 값과 공개키를 해쉬한 값이 일치한다면 인증서는 위조되지 않았고 해당 CA에서 발급되었다는 것을 검증</li>
<li>데이터를 암호화 하기위한 대칭키를 생성, 서버의 공개키로 대칭키를 암호화</li>
<li>서버로 암호화 된 대칭키를 전달</li>
<li>서버는 비밀키로 복호화하여 대칭키를 얻음</li>
<li>서버와 클라이언트는 대칭키를 통해 안전히 통신</li>
</ol>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[OAuth 2.0 API 이해]]></title>
            <link>https://velog.io/@yoiseau_/OAuth-2.0-API-%EC%9D%B4%ED%95%B4</link>
            <guid>https://velog.io/@yoiseau_/OAuth-2.0-API-%EC%9D%B4%ED%95%B4</guid>
            <pubDate>Sat, 25 Jan 2025 10:03:08 GMT</pubDate>
            <description><![CDATA[<h3 id="oauth-20-이란">OAuth 2.0 이란?</h3>
<p>OAuth(Open Authorization)는 권한 부여를 위한 표준 프로토콜이다.
OAuth 프로토콜을 사용하기 전에는 사용자가 서비스에 접속하여 다른 서비스에 접근할 수 있도록 서비스와 다른 서비스에 사용자 id와 pwd를 저장하여 id, pwd 일치 시 해당 사용자의 정보를 전달하였다고 한다.이는 보안적으로 큰 문제가 발생할 수 있는 방법으로 이 방법 대신 사용 하는 것이 바로 OAuth 이다.</p>
<blockquote>
<p>OAuth 자체는 코드나 구현체가 아니라 현하기 위해 따라야 할 설계 원칙과 흐름이 적힌 문서</p>
</blockquote>
<p><img src="https://media2.giphy.com/media/v1.Y2lkPTc5MGI3NjExczZkZWhtanhsNmM1N3dubmU0Y3RqNmg5OGdkZmh4ZzFoYmtvamM2diZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/BWbdU8nbidzOdHbUg9/giphy.gif" alt=""></p>
<br>

<h3 id="oauth-20-개념">OAuth 2.0 개념</h3>
<p>OAuth는 <code>제3자 애플리케이션(Client)</code>이 <code>사용자(Resource Owner)</code>의 자격 증명(id, pwd 등)에 직접 접근하지 않고 <code>사용자의 자원(Resource Server)</code>에 안전하게 접근할 수 있도록 권한을 위임하는 방식(Access Token 발급)을 제공한다.</p>
<p><img src="https://velog.velcdn.com/images/yoiseau_/post/8c1d750d-6506-4342-ab22-745c596e4bba/image.jpeg" alt=""></p>
<br>

<h3 id="oauth-20-등록-방법">OAuth 2.0 등록 방법</h3>
<p>Client가 Resource Server를 이용하기 위해서는 Resource Server의 승인을 사전에 받아야 하는데 그것을 바로 등록이라 한다. 서비스마다 등록하는 방법은 다르지만 공통적으로 아래 세가지가 필요하다.</p>
<ul>
<li><strong>Client ID : 애플리케이션(서비스)를 식별하는 식별자 ID</strong></li>
<li><strong>Client Secret : 식별자 ID의 PWD</strong> *외부에 노출되면 안되는 정보</li>
<li><strong>Authorized redirect URls : Authorized Code를 전달받을 주소</strong> *다른 url의 요청은 무시됨</li>
<li><strong>scope : Resource Server에서 사전에 사용 가능하도록 미리 정의한 기능</strong></li>
</ul>
<table>
<thead>
<tr>
<th><img src="https://velog.velcdn.com/images/yoiseau_/post/acc2450c-aa76-4e67-a533-8bc2d1760a98/image.png" alt=""></th>
<th><img src="https://velog.velcdn.com/images/yoiseau_/post/13249d22-df18-4b38-93dc-89d862eab74c/image.jpg" alt=""></th>
</tr>
</thead>
</table>
<blockquote>
<p>구글 애플리케이션 등록 : <a href="https://console.cloud.google.com">https://console.cloud.google.com</a>
네이버 애플리케이션 등록 : <a href="https://developers.naver.com/main/">https://developers.naver.com/main/</a></p>
</blockquote>
<br>

<h3 id="resource-owner-승인">Resource Owner 승인</h3>
<p>등록을 완료하면 <code>Resource Server</code>와 <code>Client</code>는 아래 정보를 알게 된다.</p>
<ul>
<li>Client Id</li>
<li>Client Secret</li>
<li>redirect URL</li>
</ul>
<p><code>Client</code>가 <code>Resource Server</code>의 기능 중 일부 기능만 필요하다 하면 모든 기능에 대한 인증을 받는 것이 아닌 해당 기능에 대한 인증만 받으면 된다.</p>
<p>사용자가 애플리케이션에 접속한다고 가정해보자.</p>
<blockquote>
<p>1.애플리케이션 접속
2.구글 로그인 버튼 클릭 
3.구글 로그인 코드와 같이 특정한 url이 구글 서버쪽으로 보내짐
4.사용자가 구글 로그인 되어 있는지 확인하고 로그인이 안되어 있으면 로그인 요청
5.사용자 로그인 후에 서버에서 애플리케이션 등록 정보와 같은지 확인
6.<code>Client Id</code>, <code>Client Secret</code>, <code>redirect URL</code>이 같다면 <code>scope</code>에 해당되는 권한을 부여할 것인지 사용자에게 확인</p>
</blockquote>
<pre><code># 구글 로그인
https://resource.server/
?client_id=1
&amp;scope=B,C
&amp;redirect_uri=https://client/callback</code></pre><pre><code># 서버의 요청을 사용자가 허용
client id : 1
client Secret : 2
redirect URL : https//client/callback
  user id : 1
  scope : b,c</code></pre><br>

<h3 id="resource-server-승인">Resource Server 승인</h3>
<p><code>Resource Owner</code>가 허용하면 <code>Resource Server</code>는 Access Token 발급을 진행한다.</p>
<blockquote>
<p>OAuth의 목적은 <code>Access Token</code>을 발급하는 것이다.</p>
</blockquote>
<p>Resource Owner 승인 과정에서 <code>user id:1</code>은  <code>scope:b,c</code>에 대한 작업을 <code>client_id=1</code>에게 허용한다 까지 처리했다. Resource Server 승인 과정은 아래 순서와 같다.</p>
<blockquote>
<p>1.사용자의 승인을 허용받으면 서버는 사용자에게 <code>authorization code</code>를 전송
2.서버가 사용자 웹브라우저에게 <code>https:///clinet/callback?code=3</code> 로 이동 명령
3.애플리케이션은 <code>authorization code</code>를 사용자로부터 전달받음
4.애플리케이션은 <code>authorization code</code>와 <code>client_secret</code>을 이용해 사용자를 거치지 않고 서버에 직접 전송 
5.서버는 <code>authorization code</code>, <code>client_id</code>, <code>redirect_uri</code>, <code>client_secret</code> 의 값을 확인한 후 Access Token 발급</p>
</blockquote>
<pre><code># 서버가 사용자에게 authorization code를 전송
# Location : https:///clinet/callback?code=3

client id : 1
client Secret : 2
redirect URL : https//client/callback
  user id : 1
  scope : b,c
  authorization code : 3</code></pre><pre><code># 애플리케이션은 authorization code를 서버에 직접 접속

https://resource.server/token
?grant_type=authorization_code
&amp;code=3
&amp;redirect_uri=https://client/callback
&amp;client_id=1
&amp;client_secret=2</code></pre><br>

<h3 id="access-token-발급">Access Token 발급</h3>
<p>서버는 authorization code을 통해 애플리케이션을 인증하고 Access Token 발급을 아래 과정으로 진행한다.</p>
<blockquote>
<p>1.서버는 <code>authorization code</code>를 삭제하고 <code>Access Token</code>을 발급한다.
2.서버는 <code>Access Token</code>을 애플리케이션에게 응답한다.
3.애플리케이션은 응답받은 <code>Access Token</code>값을 저장한다.
4.<code>Access Token</code>은 애플리케이션이 같은 <code>Access Token</code>으로 접근하면 <code>user id</code>, <code>scope</code>의 정보를 허용한다.</p>
</blockquote>
<br>

<h3 id="oauth-20-api-호출">OAuth 2.0 API 호출</h3>
<p>애플리케이션이 서버를 호출해서 어떤 것을 하려할 때 API를 사용해서 조작한다.
구글 경우 <code>Access_token</code> 쿼리 매개변수로 사용하는 방법과 <code>Authorizion</code>을 HTTP 헤더 <code>Bearer</code>값을 포함하여 사용하는 방법이 있다.</p>
<blockquote>
<p>Google Calendar API : <a href="https://developers.google.com/calendar/api/v3/reference?hl=ko">https://developers.google.com/calendar/api/v3/reference?hl=ko</a></p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/yoiseau_/post/b78f6bbf-c424-4529-bbb4-06790d4fc6ea/image.png" alt=""></p>
<blockquote>
<p>Google API 호출 메뉴얼 : <a href="https://developers.google.com/identity/protocols/oauth2/web-server?hl=ko#httprest_5">https://developers.google.com/identity/protocols/oauth2/web-server?hl=ko#httprest_5</a></p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/yoiseau_/post/0982d518-53bc-44f0-96a4-f309e7185725/image.png" alt=""></p>
<pre><code># HTTP GET 예시 (Google CalendarList 가져오기)
# 주소창 입력

https://www.googleapis.com/calendar/v3/
users/me/calendarList
?access_token=access_token</code></pre><pre><code># curl 예시 (Google CalendarList 가져오기) *권장
# cmd 입력

curl -H &quot;Authorization: Bearer 
access_token&quot; 
https://www.googleapis.com/calendar/v3/
users/me/calendarList</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[[백준] 15552. A+B]]></title>
            <link>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-15552.-AB</link>
            <guid>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-15552.-AB</guid>
            <pubDate>Thu, 26 Dec 2024 07:35:29 GMT</pubDate>
            <description><![CDATA[<h3 id="📄문제">📄문제</h3>
<blockquote>
<p>Python을 사용하고 있다면, input 대신 sys.stdin.readline을 사용할 수 있다. 단, 이때는 맨 끝의 개행문자까지 같이 입력받기 때문에 문자열을 저장하고 싶을 경우 .rstrip()을 추가로 해 주는 것이 좋다.</p>
</blockquote>
<blockquote>
<p>입력) 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다.</p>
</blockquote>
<blockquote>
<p>출력) 각 테스트케이스마다 A+B를 한 줄에 하나씩 순서대로 출력한다.</p>
</blockquote>
<hr>
<h3 id="✏️풀이">✏️풀이</h3>
<ul>
<li>데이터를 빠르게 입력받기 위해 <code>sys.stdin</code>을 사용한다.</li>
<li><code>stdin</code>을 활용하기 위해 <code>sys</code>모듈을 import 한다.</li>
<li>T에 반복 횟수를 입력받고, 입력받은 반복 횟수 동안 A, B에 두 정수를 입력받는다.</li>
<li><code>map()</code>을 이용해 첫번째 인자로 적용할 함수, 두번째 인자로 list 같은 이터러블을 입력받는다.</li>
<li>입력 받은 정수 값을 공백 문자로 자르고 list로 반환하기 위해 <code>sys.stdin.readline()</code>를 사용한다.</li>
</ul>
<hr>
<h3 id="✔️정답">✔️정답</h3>
<pre><code class="language-python">import sys

T = int(sys.stdin.readline())

for _ in range(T):
    A,B = map(int, sys.stdin.readline().split())
    print(A+B)</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[백준] 10951. A+B - 4]]></title>
            <link>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-10951.-AB-4</link>
            <guid>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-10951.-AB-4</guid>
            <pubDate>Mon, 23 Dec 2024 14:39:00 GMT</pubDate>
            <description><![CDATA[<h3 id="📄문제">📄문제</h3>
<blockquote>
<p>두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.</p>
</blockquote>
<blockquote>
<p>입력) 첫입력은 여러 개의 테스트 케이스로 이루어져 있다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 &lt; A, B &lt; 10)</p>
</blockquote>
<blockquote>
<p>출력) 각 테스트 케이스마다 A+B를 출력한다.</p>
</blockquote>
<hr>
<h3 id="✏️풀이">✏️풀이</h3>
<ul>
<li><code>whlie문</code>을 무한루프로 작성한다.</li>
<li>A, B를 입력받아 공백기준으로 자르고 정수로 형변환한다.</li>
<li>try except문을 사용해 정상적으로 입력했을 경우와 break문을 작성한다.</li>
</ul>
<hr>
<h3 id="✔️정답">✔️정답</h3>
<pre><code class="language-python">while True:
    try:
        A, B = map(int, input().split())
        print(A+B)
    except:
        break</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[백준] 2438. 별 찍기-1]]></title>
            <link>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-2438.-%EB%B3%84-%EC%B0%8D%EA%B8%B0-1</link>
            <guid>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-2438.-%EB%B3%84-%EC%B0%8D%EA%B8%B0-1</guid>
            <pubDate>Mon, 23 Dec 2024 14:31:33 GMT</pubDate>
            <description><![CDATA[<h3 id="📄문제">📄문제</h3>
<blockquote>
<p>첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제</p>
</blockquote>
<blockquote>
<p>입력) 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.</p>
</blockquote>
<blockquote>
<p>출력) 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.</p>
</blockquote>
<hr>
<h3 id="✏️풀이">✏️풀이</h3>
<ul>
<li>n은 <code>input</code> 함수로 값을 입력받고 <code>int()</code>를 통해 형변환 한다.</li>
<li><code>for</code> 반복문을 이용해 1부터 n+1까지 아래 문장을 반복한다.</li>
<li>i를 통해 1~n만큼 반복해 *를 출력한다.</li>
</ul>
<hr>
<h3 id="✔️정답">✔️정답</h3>
<pre><code class="language-python">n = int(input())

for i in range(1, n+1):
    print(&quot;*&quot; * i)</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[백준] 2739. 구구단]]></title>
            <link>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-2739.-%EA%B5%AC%EA%B5%AC%EB%8B%A8</link>
            <guid>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-2739.-%EA%B5%AC%EA%B5%AC%EB%8B%A8</guid>
            <pubDate>Mon, 23 Dec 2024 14:28:04 GMT</pubDate>
            <description><![CDATA[<h3 id="📄문제">📄문제</h3>
<blockquote>
<p>N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다.</p>
</blockquote>
<blockquote>
<p>입력) 첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 9보다 작거나 같다.</p>
</blockquote>
<blockquote>
<p>출력) 출력형식과 같게 Nx1부터 Nx9까지 출력한다.</p>
</blockquote>
<hr>
<h3 id="✏️풀이">✏️풀이</h3>
<ul>
<li>N은 <code>input</code> 함수로 값을 입력받고 <code>int()</code>를 통해 형변환 한다.</li>
<li><code>for</code> 반복문을 이용해 1부터 9까지 반복한다.</li>
<li><code>print()</code>함수로 N<em>1부터 N</em>9까지 출력한다.</li>
</ul>
<hr>
<h3 id="✔️정답">✔️정답</h3>
<pre><code class="language-python">N = int(input())  

for i in range(1, 10):
    print(N, &#39;*&#39;, i, &#39;=&#39;, N*i)</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[백준] 10952. A+B - 5]]></title>
            <link>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-10952.-AB-5</link>
            <guid>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-10952.-AB-5</guid>
            <pubDate>Mon, 23 Dec 2024 14:23:00 GMT</pubDate>
            <description><![CDATA[<h3 id="📄문제">📄문제</h3>
<blockquote>
<p>두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.</p>
</blockquote>
<blockquote>
<p>입력) 입력은 여러 개의 테스트 케이스로 이루어져 있다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 &lt; A, B &lt; 10)
입력의 마지막에는 0 두 개가 들어온다.</p>
</blockquote>
<blockquote>
<p>출력) 각 테스트 케이스마다 A+B를 출력한다.</p>
</blockquote>
<hr>
<h3 id="✏️풀이">✏️풀이</h3>
<ul>
<li>0 0 이 입력될 때까지 정수쌍 A, B를 입력받아 정수쌍의 합을 출력한다.</li>
<li><code>whlie</code>문의 무한루프를 쓴다.</li>
<li>A, B가 0일 때 <code>break</code>를 이용해 반복을 멈추게 한다.</li>
</ul>
<hr>
<h3 id="✔️정답">✔️정답</h3>
<pre><code class="language-python">while True:
    a, b = map(int, input().split())
    if a == 0 and b == 0:
        break;
    else:
        print(a+b)</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[백준] 10950. A+B - 3]]></title>
            <link>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-10950.-AB-3</link>
            <guid>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-10950.-AB-3</guid>
            <pubDate>Mon, 23 Dec 2024 13:43:54 GMT</pubDate>
            <description><![CDATA[<h3 id="📄문제">📄문제</h3>
<blockquote>
<p>두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.</p>
</blockquote>
<blockquote>
<p>입력) 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 &lt; A, B &lt; 10)</p>
</blockquote>
<blockquote>
<p>출력) 각 테스트 케이스마다 A+B를 출력한다.</p>
</blockquote>
<hr>
<h3 id="✏️풀이">✏️풀이</h3>
<ul>
<li>테스트 케이스 개수 T는 <code>input</code> 함수로 값을 입력받고 <code>int()</code>를 통해 형변환 한다.</li>
<li><code>for</code> 반복문을 이용해 입력받은 테스트 개수만큼 아래 두 문장을 반복한다.</li>
<li><code>map()</code>함수를 사용해 A,B를 입력받고 공백을 기준으로 나눈 후 <code>int()</code>를 통해 형변환 한다.</li>
<li><code>print()</code>함수로 A+B의 값을 출력한다.</li>
</ul>
<hr>
<h3 id="✔️정답">✔️정답</h3>
<pre><code class="language-python">T = int(input())  

for _ in range(T):  
    A, B = map(int,input().split())
    print(A+B)</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[백준] 10872. 팩토리얼]]></title>
            <link>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-10872.-%ED%8C%A9%ED%86%A0%EB%A6%AC%EC%96%BC</link>
            <guid>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-10872.-%ED%8C%A9%ED%86%A0%EB%A6%AC%EC%96%BC</guid>
            <pubDate>Mon, 23 Dec 2024 13:36:19 GMT</pubDate>
            <description><![CDATA[<h3 id="📄문제">📄문제</h3>
<blockquote>
<p>0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.</p>
</blockquote>
<blockquote>
<p>입력) 첫째 줄에 정수 N(0 ≤ N ≤ 12)이 주어진다.</p>
</blockquote>
<blockquote>
<p>출력) 첫째 줄에 N!을 출력한다.</p>
</blockquote>
<hr>
<h3 id="✏️풀이">✏️풀이</h3>
<ul>
<li>팩토리얼은 1부터 n까지 양의 정수를 모두 곱한 수로 0!=1로 약속하고, n!=n8(n-1)의 성질을 갖는다.</li>
<li><code>input</code> 함수로 값을 입력받고 <code>int()</code>를 통해 형변환 한다.</li>
<li>결과값을 받아줄 변수 result를 1로 초기화 한다.</li>
<li>1부터 입력받은 수 n까지 반복을 통해 result에 해당 값 i를 곱한다.</li>
</ul>
<hr>
<h3 id="✔️정답">✔️정답</h3>
<pre><code class="language-python">n = int(input())
result = 1

for i in range(1, n+1):
    result *= i

print(result)</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[백준] 2741. N 찍기]]></title>
            <link>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-2741.-N-%EC%B0%8D%EA%B8%B0</link>
            <guid>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-2741.-N-%EC%B0%8D%EA%B8%B0</guid>
            <pubDate>Mon, 23 Dec 2024 03:17:01 GMT</pubDate>
            <description><![CDATA[<h3 id="📄문제">📄문제</h3>
<blockquote>
<p>자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.</p>
</blockquote>
<blockquote>
<p>입력) 첫째 줄에 100,000보다 작거나 같은 자연수 N이 주어진다.</p>
</blockquote>
<blockquote>
<p>출력) 첫째 줄부터 N번째 줄 까지 차례대로 출력한다.</p>
</blockquote>
<hr>
<h3 id="✏️풀이">✏️풀이</h3>
<ul>
<li><code>input</code> 함수로 값을 입력받고 <code>int()</code>를 통해 형변환 한다.</li>
<li><code>for</code> 반복문을 이용해 1부터 N+1까지 값을 <code>print()</code>로 출력한다.</li>
<li><code>range()</code>함수는 첫번째 인자값 부터 두번째 인자값-1까지의 정수를 생성한다.</li>
<li><code>print()</code>함수는 기본적으로 개행이 들어있다.</li>
</ul>
<hr>
<h3 id="✔️정답">✔️정답</h3>
<pre><code class="language-python">N = int(input())

for i in range(1, N+1):
    print(i)</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[백준] 2420. 사파리월드]]></title>
            <link>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-2420.-%EC%82%AC%ED%8C%8C%EB%A6%AC%EC%9B%94%EB%93%9C</link>
            <guid>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-2420.-%EC%82%AC%ED%8C%8C%EB%A6%AC%EC%9B%94%EB%93%9C</guid>
            <pubDate>Mon, 23 Dec 2024 03:09:48 GMT</pubDate>
            <description><![CDATA[<h3 id="📄문제">📄문제</h3>
<blockquote>
<p>사파리월드는 인터넷으로만 존재하는 미스테리한 나라이다. 사파리월드에는 2개의 서브도메인이 seunghwan.royal.gov.sw와 kyuhyun.royal.gov.sw 이 있는데, 이것이 couple.royal.gov.sw으로 합쳐질 것이다. 그러나 도메인 관리 센터 SWNIC(센터장: 김동규)에는 엄격한 룰이 있다. 두 서브도메인을 합칠 때, 유명도의 차이가 너무 차이나지 않을 경우에만 두 서브도메인을 결혼시키는 것이다. 서브도메인의 유명도는 정수이다. 두 서브도메인의 유명도가 주어졌을 때, 그 차이를 구하는 프로그램을 작성하시오.</p>
</blockquote>
<blockquote>
<p>입력) 첫째 줄에 두 도메인의 유명도 N과 M이 주어진다. (-2,000,000,000 ≤ N, M ≤ 2,000,000,000)</p>
</blockquote>
<blockquote>
<p>출력) 첫째 줄에 두 유명도의 차이 (|N-M|)을 출력한다.</p>
</blockquote>
<hr>
<h3 id="✏️풀이">✏️풀이</h3>
<ul>
<li><code>map()</code>함수를 사용해 사용자로부터 N과 M 두 개의 값을 입력받아 띄어쓰기로 구분하여 나누고 나눈 값은 정수로 형변환 한다.</li>
<li><code>abs()</code>함수를 사용해 N에서 M을 뺀 값의 절대값을 구한다.</li>
</ul>
<hr>
<h3 id="✔️정답">✔️정답</h3>
<pre><code class="language-python">N, M = map(int, input().split())

print(abs(N-M))</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[백준] 2753. 윤년]]></title>
            <link>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-2753.-%EC%9C%A4%EB%85%84</link>
            <guid>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-2753.-%EC%9C%A4%EB%85%84</guid>
            <pubDate>Wed, 18 Dec 2024 13:54:20 GMT</pubDate>
            <description><![CDATA[<h3 id="📄문제">📄문제</h3>
<blockquote>
<p>두 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오.
윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.
예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다. 1900년은 100의 배수이고 400의 배수는 아니기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다.</p>
</blockquote>
<blockquote>
<p>입력) 첫째 줄에 연도가 주어진다. 연도는 1보다 크거나 같고, 4000보다 작거나 같은 자연수이다.</p>
</blockquote>
<blockquote>
<p>출력) 첫째 줄에 윤년이면 1, 아니면 0을 출력한다.</p>
</blockquote>
<hr>
<h3 id="✏️풀이">✏️풀이</h3>
<ul>
<li>x를 input() 함수로 입력받고, 입력받은 값을 int()를 이용해 정수로 형변환 한다.</li>
<li>4로 나눴을 때 나머지가 0 이고, 100으로 나눴을 때 나머지가 0이 아니다. 또는 400으로 나눴을 때 나머지가 0인 경우 1을 출력한다. 아닌 경우 0을 출력한다.</li>
</ul>
<hr>
<h3 id="✔️정답">✔️정답</h3>
<pre><code class="language-python">x = int(input())

if x % 4 == 0 and x % 100 != 0:
    print(&#39;1&#39;)
elif x % 400 == 0:
    print(&#39;1&#39;)
else:
    print(&#39;0&#39;)</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[백준] 14681. 사분면 고르]]></title>
            <link>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-14681.-%EC%82%AC%EB%B6%84%EB%A9%B4-%EA%B3%A0%EB%A5%B4-bs0reg0f</link>
            <guid>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-14681.-%EC%82%AC%EB%B6%84%EB%A9%B4-%EA%B3%A0%EB%A5%B4-bs0reg0f</guid>
            <pubDate>Tue, 17 Dec 2024 06:29:27 GMT</pubDate>
            <description><![CDATA[<h3 id="📄문제">📄문제</h3>
<blockquote>
<p>흔한 수학 문제 중 하나는 주어진 점이 어느 사분면에 속하는지 알아내는 것이다. 사분면은 아래 그림처럼 1부터 4까지 번호를 갖는다. &quot;Quadrant n&quot;은 &quot;제n사분면&quot;이라는 뜻이다.
<img src="https://velog.velcdn.com/images/yoiseau_/post/f73dc3a9-e49e-4104-a58f-207639db05dc/image.png" alt="">
예를 들어, 좌표가 (12, 5)인 점 A는 x좌표와 y좌표가 모두 양수이므로 제1사분면에 속한다. 점 B는 x좌표가 음수이고 y좌표가 양수이므로 제2사분면에 속한다.
점의 좌표를 입력받아 그 점이 어느 사분면에 속하는지 알아내는 프로그램을 작성하시오. 단, x좌표와 y좌표는 모두 양수나 음수라고 가정한다.</p>
</blockquote>
<blockquote>
<p>입력) 첫 줄에는 정수 x가 주어진다. (−1000 ≤ x ≤ 1000; x ≠ 0) 다음 줄에는 정수 y가 주어진다. (−1000 ≤ y ≤ 1000; y ≠ 0)</p>
</blockquote>
<blockquote>
<p>출력) 점 (x, y)의 사분면 번호(1, 2, 3, 4 중 하나)를 출력한다.</p>
</blockquote>
<hr>
<h3 id="✏️풀이">✏️풀이</h3>
<ul>
<li>x와 y를 input() 함수로 입력받고, 입력받은 값을 int()를 이용해 정수로 형변환 한다.</li>
<li>1사분면부터 4사분면까지 조건을 작성한다</li>
<li>입력 받은 수는 조건에 따라 점에 속한 사분면을 출력한다.</li>
</ul>
<hr>
<h3 id="✔️정답">✔️정답</h3>
<pre><code class="language-python">x = int(input())
y = int(input())

if x &gt; 0 and y &gt; 0:
    print(1)
elif x &lt; 0 and y &gt; 0:
    print(2)
elif x &lt; 0 and y &lt; 0:
    print(3)
else:
    print(4)</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[백준] 1330. 두 수 비교하기]]></title>
            <link>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-1330.-%EB%91%90-%EC%88%98-%EB%B9%84%EA%B5%90%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-1330.-%EB%91%90-%EC%88%98-%EB%B9%84%EA%B5%90%ED%95%98%EA%B8%B0</guid>
            <pubDate>Wed, 11 Dec 2024 03:24:01 GMT</pubDate>
            <description><![CDATA[<h3 id="📄문제">📄문제</h3>
<blockquote>
<p>두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오.</p>
</blockquote>
<blockquote>
<p>입력) 첫째 줄에 A와 B가 주어진다. A와 B는 공백 한 칸으로 구분되어져 있다.</p>
</blockquote>
<blockquote>
<p>출력) 첫째 줄에 다음 세 가지 중 하나를 출력한다.</p>
<ul>
<li>A가 B보다 큰 경우에는 &#39;&gt;&#39;를 출력한다.</li>
<li>A가 B보다 작은 경우에는 &#39;&lt;&#39;를 출력한다.</li>
<li>A와 B가 같은 경우에는 &#39;==&#39;를 출력한다.</li>
</ul>
</blockquote>
<hr>
<h3 id="✏️풀이">✏️풀이</h3>
<ul>
<li>A와 B를 input() 함수로 입력받고, 입력받은 값을 - split() 공백 기준으로 자른다.</li>
<li>input() 함수로 입력받은 값은 문자열(str)이어서 - int()를 이용해 정수로 형변환 한다.</li>
<li>A와 B를 &lt;, &gt;, == 로 비교하고 조건에 맞는 문자열을 출력한다.</li>
</ul>
<hr>
<h3 id="✔️정답">✔️정답</h3>
<pre><code class="language-python">A, B = input().split()

A = int(A)
B = int(B)

if B &lt; A:
    print(&quot;&gt;&quot;)
elif A &lt; B:
    print(&quot;&lt;&quot;)
elif A == B:
    print(&quot;==&quot;)</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[백준] 11382. 꼬마 정민]]></title>
            <link>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-11382.-%EA%BC%AC%EB%A7%88-%EC%A0%95%EB%AF%BC-bsn3shdz</link>
            <guid>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-11382.-%EA%BC%AC%EB%A7%88-%EC%A0%95%EB%AF%BC-bsn3shdz</guid>
            <pubDate>Wed, 11 Dec 2024 03:13:56 GMT</pubDate>
            <description><![CDATA[<h3 id="📄문제">📄문제</h3>
<blockquote>
<p>꼬마 정민이는 이제 A + B 정도는 쉽게 계산할 수 있다. 이제 A + B + C를 계산할 차례이다!</p>
</blockquote>
<blockquote>
<p>입력) 첫 번째 줄에 A, B, C (1 ≤ A, B, C ≤ 1012)이 공백을 사이에 두고 주어진다.</p>
</blockquote>
<blockquote>
<p>출력) A+B+C의 값을 출력한다.</p>
</blockquote>
<hr>
<h3 id="✏️풀이">✏️풀이</h3>
<ul>
<li>A, B, C를 input() 함수로 입력받고, 입력받은 값을 - split() 공백 기준으로 자른다.</li>
<li>input() 함수로 입력받은 값은 문자열(str)이어서 - int()를 이용해 정수로 형변환 한다.</li>
<li>A와 B의 더한 값을 print()로 출력한다.</li>
</ul>
<hr>
<h3 id="✔️정답">✔️정답</h3>
<pre><code class="language-python">A, B, C = input().split()

A = int(A)
B = int(B)
C = int(C)

print(A+B+C)</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[백준] 25083. 새싹]]></title>
            <link>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-25083.-%EC%83%88%EC%8B%B9</link>
            <guid>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-25083.-%EC%83%88%EC%8B%B9</guid>
            <pubDate>Tue, 10 Dec 2024 06:49:42 GMT</pubDate>
            <description><![CDATA[<h3 id="📄문제">📄문제</h3>
<blockquote>
<p>두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.</p>
</blockquote>
<blockquote>
<p>입력) 첫째 줄에 A와 B가 주어진다. (0 &lt; A, B &lt; 10)</p>
</blockquote>
<blockquote>
<p>출력) 첫째 줄에 A+B를 출력한다.</p>
</blockquote>
<hr>
<h3 id="✏️풀이">✏️풀이</h3>
<ul>
<li>예제 출력 모양대로 print()를 이용해 출력한다.</li>
<li>작은따옴표 또는 큰 따옴표를 출력하려면 앞에 백슬래쉬를 적어야 한다. <code>\&#39;</code> <code>\&quot;</code></li>
</ul>
<hr>
<h3 id="✔️정답">✔️정답</h3>
<pre><code class="language-python">print(&quot;         ,r\&#39;\&quot;7&quot;)
print(&quot;r`-_   ,\&#39;  ,/&quot;)
print(&quot; \\. \&quot;. L_r\&#39;&quot;)
print(&quot;   `~\\/&quot;)
print(&quot;      |&quot;)
print(&quot;      |&quot;)</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[백준] 10172. 개]]></title>
            <link>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-10172.-%EA%B0%9C</link>
            <guid>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-10172.-%EA%B0%9C</guid>
            <pubDate>Tue, 10 Dec 2024 01:23:37 GMT</pubDate>
            <description><![CDATA[<h3 id="📄문제">📄문제</h3>
<blockquote>
<p>아래 예제와 같이 개를 출력하시오.</p>
</blockquote>
<blockquote>
<p>입력) 없음.</p>
</blockquote>
<blockquote>
<p>출력) 개를 출력한다.
<img src="https://velog.velcdn.com/images/yoiseau_/post/742cf463-5650-4a1c-a5ea-fba47c181f8a/image.png" alt=""></p>
</blockquote>
<hr>
<h3 id="✏️풀이">✏️풀이</h3>
<ul>
<li>예제 출력 모양대로 print()를 이용해 출력한다.</li>
<li>백슬래쉬를 출력하려면 앞에 백슬래쉬를 하나 더 적어야 한다. \</li>
<li>큰따옴표를 출력하려면 문자열을 감싸는 따옴표를 작은따옴표로 사용한다. </li>
</ul>
<hr>
<h3 id="✔️정답">✔️정답</h3>
<pre><code class="language-python">print(&quot;|\\_/|&quot;)
print(&quot;|q p|   /}&quot;)
print(&#39;( 0 )&quot;&quot;&quot;\\&#39;)
print(&#39;|&quot;^&quot;`    |&#39;)
print(&quot;||_/=\\\\__|&quot;)</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[백준] 10171. 고양이]]></title>
            <link>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-10171.-%EA%B3%A0%EC%96%91%EC%9D%B4</link>
            <guid>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-10171.-%EA%B3%A0%EC%96%91%EC%9D%B4</guid>
            <pubDate>Tue, 10 Dec 2024 01:17:00 GMT</pubDate>
            <description><![CDATA[<h3 id="📄문제">📄문제</h3>
<blockquote>
<p>아래 예제와 같이 고양이를 출력하시오.</p>
</blockquote>
<blockquote>
<p>입력) 없음.</p>
</blockquote>
<blockquote>
<p>출력) 고양이를 출력한다.
<img src="https://velog.velcdn.com/images/yoiseau_/post/4178740d-251c-4abd-a18b-d94007017669/image.png" alt=""></p>
</blockquote>
<hr>
<h3 id="✏️풀이">✏️풀이</h3>
<ul>
<li>예제 출력 모양대로 <code>print()</code>를 이용해 출력한다.</li>
<li>백슬래쉬를 출력하려면 앞에 백슬래쉬를 하나 더 적어야 한다. <code>\\</code></li>
</ul>
<hr>
<h3 id="✔️정답">✔️정답</h3>
<pre><code class="language-python">print(&quot;\\    /\\&quot;)
print(&quot; )  ( &#39;)&quot;)
print(&quot;(  /  )&quot;)
print(&quot; \(__)|&quot;)</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[백준] 10817. 세 수]]></title>
            <link>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-10817.-%EC%84%B8-%EC%88%98</link>
            <guid>https://velog.io/@yoiseau_/%EB%B0%B1%EC%A4%80-10817.-%EC%84%B8-%EC%88%98</guid>
            <pubDate>Tue, 10 Dec 2024 01:12:30 GMT</pubDate>
            <description><![CDATA[<h3 id="📄문제">📄문제</h3>
<blockquote>
<p>세 정수 A, B, C가 주어진다. 이때, 두 번째로 큰 정수를 출력하는 프로그램을 작성하시오. </p>
</blockquote>
<blockquote>
<p>입력) 첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100)</p>
</blockquote>
<blockquote>
<p>출력) 두 번째로 큰 정수를 출력한다.</p>
</blockquote>
<hr>
<h3 id="✏️풀이">✏️풀이</h3>
<ul>
<li>리스트로 입력받고, 공백을 기준으로 나눈 후, <code>int()</code>를 이용해 정수로 형변환 한다.</li>
<li>리스트로 저장된 num 변수의 값을 <code>sort()</code> 함수를 이용해 오름차순 정렬을 한다.</li>
<li>리스트의 두 번째 위치에 있는 정수를 출력한다.</li>
</ul>
<hr>
<h3 id="✔️정답">✔️정답</h3>
<pre><code class="language-python">num = list(map(int, input().split()))

num.sort()

print(num[1])</code></pre>
]]></description>
        </item>
    </channel>
</rss>