<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>star.log</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Sat, 26 Aug 2023 14:17:24 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>star.log</title>
            <url>https://velog.velcdn.com/images/eunbyeol_1230/profile/daf991d1-aee3-4b27-bed1-0a3439e970a3/image.jpg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. star.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/eunbyeol_1230" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[백준 (c++) 1018 체스판 다시 칠하기]]></title>
            <link>https://velog.io/@eunbyeol_1230/%EB%B0%B1%EC%A4%80-%EC%B2%B4%EC%8A%A4%ED%8C%90-%EB%8B%A4%EC%8B%9C-%EC%B9%A0%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@eunbyeol_1230/%EB%B0%B1%EC%A4%80-%EC%B2%B4%EC%8A%A4%ED%8C%90-%EB%8B%A4%EC%8B%9C-%EC%B9%A0%ED%95%98%EA%B8%B0</guid>
            <pubDate>Sat, 26 Aug 2023 14:17:24 GMT</pubDate>
            <description><![CDATA[<p>백준 (c++) 1018 체스판 다시 칠하기
<a href="https://www.acmicpc.net/problem/1018">백준1018번 바로가기</a></p>
<pre><code>#include &lt;iostream&gt;

using namespace std;
char board[50][50];

int chk_board(int i, int j)
{
    if ((board[i][j] != board[i][j + 1]) &amp;&amp; (board[i][j] != board[i + 1][j]))
        return 0;
    else
        return 1;
}

int main(void)
{
    int n;
    int m;
    cin &gt;&gt; n &gt;&gt; m;

    for (int i = 0; i &lt; n; i++)
    {
        for (int j = 0; j &lt; m; j++)
        {
            cin &gt;&gt; board[i][j];
        }
    }

    int min_paint = n * m;
    for (int i = 0; i &lt;= n - 8; i++)
    {
        for (int j = 0; j &lt;= m - 8; j++)
        {
            for (int start_color = 0; start_color &lt; 2; start_color++)
            {
                int cnt = 0;
                for (int x = i; x &lt; i + 8; x++)
                {
                    for (int y = j; y &lt; j + 8; y++)
                    {
                        char target_color = ((x + y + start_color) % 2 == 0) ? &#39;B&#39; : &#39;W&#39;;
                        if (board[x][y] != target_color)
                            cnt++;
                    }
                }
                if (min_paint &gt; cnt)
                {
                    min_paint = cnt;
                }
            }
        }
    }

    cout &lt;&lt; min_paint &lt;&lt; endl;

    return 0;
}
</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[ linux - 하드링크 심볼릭링크]]></title>
            <link>https://velog.io/@eunbyeol_1230/linux-%ED%95%98%EB%93%9C%EB%A7%81%ED%81%AC-%EC%8B%AC%EB%B3%BC%EB%A6%AD%EB%A7%81%ED%81%AC</link>
            <guid>https://velog.io/@eunbyeol_1230/linux-%ED%95%98%EB%93%9C%EB%A7%81%ED%81%AC-%EC%8B%AC%EB%B3%BC%EB%A6%AD%EB%A7%81%ED%81%AC</guid>
            <pubDate>Wed, 19 Jul 2023 06:33:33 GMT</pubDate>
            <description><![CDATA[<p>리눅스에서 링크설정은 하드링크와 심볼릭링크 두가지가 존재한다,</p>
<p>하드링크는 원본파일과 동일한 inode를 가진다.
원본파일이 삭제되더라도 inode를 갖고있는 링크파일은 사용가능하다.</p>
<p>심볼릭링크는 바로가기와 같은 개념이다. 원본파일을 다른 경로나 이름을 써서 파일을 열 수 있다.
원본파일에 의존적이라고 할 수 있는 심볼릭링크는 하드링크와의 차이점이 같은 inode를 가르키느냐의 차이이다.</p>
<p>하드링크 생성 
ln [대상파일] [하드링크파일]</p>
<p>심볼릭링크 생성
ln -s [대상파일][심볼릭링크파일]</p>
<p>포인터와 비슷한 하드링크와 심볼릭링크..</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[linux 명령어 -touch]]></title>
            <link>https://velog.io/@eunbyeol_1230/linux-%EB%AA%85%EB%A0%B9%EC%96%B4-touch</link>
            <guid>https://velog.io/@eunbyeol_1230/linux-%EB%AA%85%EB%A0%B9%EC%96%B4-touch</guid>
            <pubDate>Wed, 19 Jul 2023 06:19:30 GMT</pubDate>
            <description><![CDATA[<p>touch는 파일의 날짜시간정보를 변경하는 명령어이다.</p>
<p>touch [옵션] 파일명
만약에 옵션없이 사용되지 않는다면 파일크기가 0인 빈 파일이 생성된다.</p>
<p>touch test.txt
-&gt; 빈 파일 생성</p>
<p>touch -c test.txt
-&gt; 현재시간으로 날짜정보 변경</p>
<p>touch -t 202302021230 test.txt
-&gt; 날짜정보 원하는대로 변경 YYYYMMDDhhmm</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[linux 명령어 - chmod]]></title>
            <link>https://velog.io/@eunbyeol_1230/linux-%EB%AA%85%EB%A0%B9%EC%96%B4-chmod</link>
            <guid>https://velog.io/@eunbyeol_1230/linux-%EB%AA%85%EB%A0%B9%EC%96%B4-chmod</guid>
            <pubDate>Wed, 19 Jul 2023 06:13:51 GMT</pubDate>
            <description><![CDATA[<p>chmod 명령어는 파일이나 디렉토리의 권한을 소유자, 소유그룹, 그 외 사용자들에게 맞게 설정할 수 있눈 명령어이다.
(change mode의 약자_)</p>
<p>리눅스 파일,디렉토리는 소유자(user), 소유 그룹(group), 그 외 사용자(others)에 
읽기(read), 쓰기(write), 실행(execute) 권한을 부여할 수 있다.</p>
<p>예를 들어 test.txt파일이 현재 디렉토리에 있다고 가정하고
ls -l 로 파일에 부여된 권한을 확인해보면,</p>
<blockquote>
<p>-rwxr-xr-x. 2 root root    6 12월 26 15:40 test.txt    </p>
</blockquote>
<p>==&gt; 이런식으로 되어 있는걸 볼 수 있다.</p>
<p>권한을 변경해주고 싶다면
chmod 777 test.txt 로 변경해주면 되는데,
여기서 777이라는 숫자는</p>
<p>3개씩 3가지로 구분을 할 수 있다.</p>
<p>*<em>rw- : 6
r--  : 4
r--  : 4
*</em>
각 권한에 값을 나타내고 있다. </p>
<p><strong>r(Read) : 4
w(Write) : 2
x(Execute) : 1 
**
**r + w + x : 7</strong></p>
<blockquote>
<p>-rwxr-xr-x. 2 root root    6 12월 26 15:40 test.txt<br> chmod 715 test.txt 를 하게되면
 -rwx--xr-x. 2 root root  6 12월 26 16:09 test.txt 
 이런식으로 변경된다.</p>
</blockquote>
<p>chmod u+x,g+w,o+wx test.txt 
이렇게해도 가능하다.(권한추가)</p>
<ul>
<li>권한 삭제
$ chmod u-r,g-r,o-r test.txt</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[linux 명령어 - tar]]></title>
            <link>https://velog.io/@eunbyeol_1230/linux-%EB%AA%85%EB%A0%B9%EC%96%B4-tar</link>
            <guid>https://velog.io/@eunbyeol_1230/linux-%EB%AA%85%EB%A0%B9%EC%96%B4-tar</guid>
            <pubDate>Wed, 19 Jul 2023 05:56:43 GMT</pubDate>
            <description><![CDATA[<p>tar - 여러 개의 파일을 하나의 파일로 묶거나 풀 때 사용하는 명령어
리눅스에서 주로 파일을 압축할 때 tar로 압축하는 경우가 종종 있는데, 정확히 tar자체는 데이터의 크기를 줄이기 위한 파일 압축을 수행하지 않는다. 여러 파일을 하나로 묶는 용도</p>
<p>tar [option] [file]
-f  : 대상 tar 지정 
-c  : tar 생성
-x  : tar 압축 풀기
-v  : 처리되는 과정을 자세하게 나열 
-C  : 대상 directory 경로 지정 
-A  : 지정된 파일을 tar에 추가
-k  : tar 파일 추출 시 기존 파일 유지
-U  : tar 파일 추출 전 기존 파일 삭제 
-p  : 파일 권한을 저장 (압축해제할 때 권한이 변경되지 않도록_)
-z  : gzip으로 압축하거나 해제함</p>
<p>사용 예</p>
<p>현재 디렉토리의 모든 파일과 디렉토리를 tar로 묶기
<strong>tar cvf test.tar  *</strong></p>
<p>대상 디렉토리를 포함한 모든 파일과 디렉토리를 tar로 묶기
<strong>tar cvf test.tar [경로]</strong></p>
<p>tar파일을 현재 디렉토리에 풀기 
<strong>tar xvf test.tar</strong></p>
<p>tar파일을 지정된 디렉토리에 풀기 
<strong>tar xvf test.tar -C [경로]</strong></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Node.js]]></title>
            <link>https://velog.io/@eunbyeol_1230/Node.js</link>
            <guid>https://velog.io/@eunbyeol_1230/Node.js</guid>
            <pubDate>Wed, 07 Jun 2023 09:55:25 GMT</pubDate>
            <description><![CDATA[<p>React가 JavaScript의 라이브러리이기 때문에 Node.js를 사용하게된다.</p>
<p>Node.js는 Chrome(브라우저 크롬)의 V8이라는 JavaScript 엔진으로 빌드된 런타임 환경이다.
웹브라우저 환경에서만 실행되던 JavaScript를 서버 측에서 실행할 수 있게 해주는 플랫폼이다.</p>
<p><strong>npm</strong> - Node.js는 패키지 관리도구인 npm을 포함하고 있다. 
npm을 통해 개발자들은 쉽게 다른 사람들이 작성한 패키지를 설치하고 관리할 수 있고,
많은 오픈 소스 라이브러리와 프레임 워크를 제공해준다.
(필요한 것 외에도 미리 만들어진 프로그램을 설치하여 사용할 수 있다는 뜻)</p>
<p>Node.js는 <strong>비동기적이고</strong>, 이벤트 기반의 프로그래밍 모델을 사용한다 - 많은 양의 요청을 동시에 처리할 수 있다는 의미</p>
<p>또한 Node.js는 <strong>서버개발에</strong>도 주로 이용된다.
Http, Tcp,Udp등 다양한 프로토콜을 다루고 웹 서버, Api서버, 실시간 애플리케이션등 개발가능하고, 다양한 모듈과 라이브러리를 활용할 수 있다.</p>
<p>Windows, macOS, Linux등 다양한 운영체제에서 동작하고 , 개발과 배포도 효율적이다.</p>
<p>특히 이벤트 기반의 비동기 방식과 높은 처리량을 지원해서 확장성이 우수하다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[React 프로젝트 시작하기]]></title>
            <link>https://velog.io/@eunbyeol_1230/React-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@eunbyeol_1230/React-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0</guid>
            <pubDate>Sat, 03 Jun 2023 11:39:53 GMT</pubDate>
            <description><![CDATA[<p><strong>1. Node.js와 Npm을 설치한다.</strong></p>
<p>Node.js는 JavaScript를 실행할 수 있는 환경을 제공한다.
자바스크립트 개발환경을 구축하고 , npm으로 필요한 자바스크립트 앱 개발 도구들을 사용한다고 생각하면 된다.</p>
<p><a href="https://nodejs.org">Node.js 공식 웹사이트 바로가기</a></p>
<p><img src="https://velog.velcdn.com/images/eunbyeol_1230/post/347c5583-0461-48fa-9e23-0992abc551bf/image.png" alt=""></p>
<p><strong>설치가 완료되면 
맥:터미널 , 윈도우:cmd 창에서 설치가 잘 되었는지 확인해보기</strong></p>
<blockquote>
<p>node -v</p>
</blockquote>
<blockquote>
<p>npm -v</p>
</blockquote>
<p><strong>2. Yarn</strong>
npm의 단점을 보완하고 성능과 속도를 개선한 것이 yarn이다.</p>
<p>yarn은 npm보다 가볍고 빠르게 자바스크립트 패키지를 관리할 수 있게 해주는 자바스크립트 패키지 매니저 툴이다.</p>
<blockquote>
<p>npm install -g yarn</p>
</blockquote>
<p>라고 입력한 후
설치가 완료되면 확인하기</p>
<blockquote>
<p>yarn -v </p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[JavaScript]]></title>
            <link>https://velog.io/@eunbyeol_1230/JavaScript</link>
            <guid>https://velog.io/@eunbyeol_1230/JavaScript</guid>
            <pubDate>Sat, 03 Jun 2023 10:43:04 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>자바스크립트는 어떤 언어인가?</p>
</blockquote>
<ul>
<li><p>웹<em>개발에서 가장 널리 사용되는 프로그래밍 언어중 하나이다.</em></p>
</li>
<li><p><strong>동적인 프로그래밍언어</strong>로, 실행 시에 코드를 해석하고 실행한다. 변수의 타입을 동적으로 결정하고 코드 실행중에 변수를 추가하거나 수정할 수 있다는 의미이다.</p>
</li>
<li><p>자바스크립트는 주로 클라이언트 사이드에서 실행되는 <strong>스크립팅 언어</strong>로 사용되는데, 웹 브라우저에서 html과 css와 함께 사용되어 웹 페이지의 동적인 동작을 구현하고 사용자와 상호작용하는 기능을 추가할 수 있다. </p>
</li>
<li><p>또한 자바스크립트는** 객체 기반 언어**이다. 객체를 생성하고 객체간의 상호작용을 통해 프로그래밍한다. 객체는 속성과 메소드를 가지고있고, 객체지향 프로그래밍의 개념을 지원한다.</p>
</li>
<li><p>자바스크립트는 <strong>이벤트 기반 프로그래밍 모델</strong>을 사용한다. 이벤트란 클릭, 마우스이동, 키 입력 등 이런 이벤트가 발생하면 이를 감지하고 이벤트 핸들러를 통해 적절한 동작을 수행할 수 있다. 이를 통해 웹페이지에서 사용자 입력에 반응하고 동적인 동작을 실행할 수 있다.</p>
</li>
<li><p>자바스크립트는 <strong>많은 라이브러리와 프레임워크</strong>가 존재해서 개발자들이 효율적으로 웹 애플리케이션을 개발할 수 있도록 도와준다. 대표적인 예로는 React, Angular, Vue.js등이 있다.</p>
</li>
<li><p>웹 브라우저에서 주로 사용되는 자바스크립트는 Node.js를 통해 서버 측 개발에도 사용될 수 있다. 이를 통해 동일한 언어로 클라이언트와 서버를 개발할 수 있고, <strong>코드의 재사용성</strong>을 높일 수 있다.</p>
</li>
<li><p>그러나 자바스크립트의 단점 중 하나는 클라이언트 사이드에서 실행되므로 보안상 취약점이 존재할 수 있다는 점이다. 또한, 다른 언어에 비해 성능이 상대적으로 느릴 수 있고, 브라우저 호환성 문제도 발생할 수 있다.</p>
</li>
<li><p>자바스크립트는 웹 개발뿐만아니라 모바일 앱 개발, 게임 개발, IoT개발 등 다양한 분야에서 활용되는 다재다능한 언어이다. </p>
</li>
</ul>
<ul>
<li>자바스크립트 코드를 해석해서 실행시키는 곳 -&gt;** 자바스크립트 엔진**
자바스크립트 엔진은 우리가 일상적으로 사용하는 브라우저(사파리, 크롬 등_)에 포함되어 있다.
&lt;예 :구글 크롬의 자바스크립트 엔진 (V8) &gt;
이러한 자바스크립트 엔진이 없으면 자바스크립트를 실행 할 수 없다. 
(실행환경, Runtime)</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[클라이언트와 서버]]></title>
            <link>https://velog.io/@eunbyeol_1230/%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8%EC%99%80-%EC%84%9C%EB%B2%84</link>
            <guid>https://velog.io/@eunbyeol_1230/%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8%EC%99%80-%EC%84%9C%EB%B2%84</guid>
            <pubDate>Sat, 03 Jun 2023 07:46:14 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>클라이언트와 서버는 웹 애플리케이션의 핵심구성요소이다. </p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/eunbyeol_1230/post/3e08e8a0-8508-4a78-ba4b-430c7ee01112/image.png" alt=""></p>
<p><strong>클라이언트는</strong> 사용자가 보는 화면이다. 
웹사이트로 따지면 크롬 브라우저나 사파리, 익스플로러 등 앱으로 따지면 휴대폰에 많이 존재하는 어플, 앱 자체가 해당된다.</p>
<p><strong>서버는</strong> 우리가 원하는 데이터가 있는 곳이고, 
원하는 데이터를 요청하면 이에 응답해주는 곳이기도 하다.</p>
<blockquote>
<p><em>즉 클라이언트에서 원하는 데이터가 있을 때마다 서버에 요청하고, 
응답 데이터를 받아 사용자에게 보여준다. 
앱 서비스 뿐만아니라 웹 사이트 만들 때도 마찬가지이다.</em></p>
</blockquote>
<ul>
<li>사용자가 웹 브라우저를 통해 웹 사이트에 접속하거나 요청을 보낸다. 이 요청은 주로 http를 사용하여 전송된다. </li>
<li>클라이언트의 요청은 해당 웹 서버로 전송이 된다. 서버는 요청을 받고 필요한 작업을 처리한다. 예를들어, 요청된 리소스를 가져오거나 데이터베이스에서 정보를 검색하는 등의 작업을 수행한다. </li>
<li>서버는 요청에 따라 필요한 데이터를 처리하고 동적으로 html, css, javascript등의 리소스를 생성한다. 데이터 처리는 서버사이드에서 이루어지고 결과적으로 클라이언트에게 전달될 정적 또는 동적 콘텐츠를 생성한다. </li>
<li>서버는 처리된 결과를 클라이언트에게 응답으로 전송한다. 이 응답은 주로 http응답으로서 상태코드, 헤더 및 본문 데이터로 구성된다. </li>
<li>클라이언트는 받은 응답을 처리하여 콘텐츠를 표시한다. 웹 브라우저는 html, css, javascript등을 해석하여 웹 페이지를 렌더링하고, 사용자에게 결과를 시각적으로 표시한다.</li>
</ul>
<p><strong>네트워크는</strong> 클라이언트와 서버 사이의 통신을 가능하게 하는 중요한 요소이다. 
웹에서의 네트워크 통신은 일반적으로 <strong><em>HTTP프로토콜을 기반</em></strong>으로 이루어지고 클라이언트가 서버에 요청을 보내면 해당 요청은 <strong><em>TCP/IP프로토콜</em></strong>을 사용하여 패킷으로 분할되어 인터넷을 통해 전송된다. </p>
<p>이러한 패킷은 라우터 및 네트워크 인프라를 통해 목적지 서버로 전송되고, 서버는 패킷을 수신하여 요청을 처리하고 응답을 클라이언트에게 돌려준다. </p>
<blockquote>
<p>네트워크 통신은 비동기적이며, 상태가 없는 방식으로 이루어진다. </p>
</blockquote>
<p>이는 각각의 요청이 독립적으로 처리되고, 서버는 각 요청을 개별적으로 이해하며 응답을 생성한다는 것을 의미한다. 클라이언트와 서버간의 통신은 요청과 응답을 주고받는 형태로 이루어지며, 이를 통해 웹 애플리케이션은 상호작용하고 정보를 교환할 수 있다. </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[React 에 대해]]></title>
            <link>https://velog.io/@eunbyeol_1230/React-%EC%97%90-%EB%8C%80%ED%95%B4</link>
            <guid>https://velog.io/@eunbyeol_1230/React-%EC%97%90-%EB%8C%80%ED%95%B4</guid>
            <pubDate>Sat, 03 Jun 2023 06:14:01 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/eunbyeol_1230/post/4bab9d47-5dc4-46eb-a1ae-5357e5277746/image.png" alt=""></p>
<h3 id="react는-사용자-인터페이스를-만들기-위한-라이브러리-라고-정의할-수-있다">React는 사용자 인터페이스를 만들기 위한 라이브러리 라고 정의할 수 있다.</h3>
<p>프레임워크가 아니고 심지어 웹에서만 사용할 수 있는 것도 아니다.
React 다른 라이브러리들과 함께 특정한 환경을 렌더링하는 데 사용된다.
React Native는 모바일 애플리케이션을 만드는 데 사용될 수 있고, React 360은 가상현실 애플리케이션을 만드는데 사용할 수 있는 등, 많은 가능성이 존재한다.</p>
<p>웹을 만들기 위해서 사용하는 React는 ReactDOM과 함께 사용해야한다.
**
React는 JSX(JavaScript와 XML)라는 HTML-in-JavaScript 문법을 사용한다.**
React는 특히 단일페이지 애플리케이션 개발에 적합하고, Facebook에서 개발되었으며 현재는 오픈소스 프로젝트로 유지되고 있다.</p>
<p><img src="https://velog.velcdn.com/images/eunbyeol_1230/post/7393829d-91f4-40f9-be74-c3e07fe43548/image.png" alt=""></p>
<p><strong>React의 동작과정은</strong> 다음과 같다.</p>
<ol>
<li><em>컴포넌트 구조</em> : React애플리케이션은 컴포넌트라는 작은 조각으로 구성된다. 컴포넌트는 재사용 가능하며, 각각의 컴포넌트는 특정한 UI요소를 나타낸다.</li>
<li><em>가상 DOM(Virtual DOM)</em>: React는 가상 DOM을 사용하여 효율적인 UI업데이트를 관리한다. 가상 DOM은 실제 DOM의 가벼운 복사본으로, React 컴포넌트의 상태 변경 시에만 실제 DOM과 동기화된다.</li>
<li><em>컴포넌트 렌더링</em> : React는 컴포넌트를 기반으로 UI를 렌더링한다. 컴포넌트는 JSX라는 JavaScript와 HTML을 혼합한 문법을 사용하여 작성되며, 이를 React가 이해하고 가상 DOM을 업데이트 한다.</li>
<li><em>상태 관리</em> : React 컴포넌트는 상태(State)를 가질 수 있다. 상태는 컴포넌트의 데이터를 나타내며, 변경 시에 컴포넌트가 다시 렌더링된다. 상태는 컴포넌트 내에서 관리되며, 필요에 따라 상위 컴포넌트로부터 전달되는 속성(Props)으로도 사용된다.</li>
</ol>
<p>*<em>React의 목표는 
*</em>UI를 선언적으로 작성할 수 있도록 도와주고, 개발자는 컴포넌트의 상태를 정의하고, React는 이를 기반으로 UI를 자동으로 업데이트한다.
컴포넌트를 재사용가능하게 함으로써 필요한 곳에서 반복해서 사용할 수 있도록 한다.
React는 가상 DOM을 사용하여 효율적인 UI업데이트를 가능하게 한다. React는 실제 DOM과 비교하여 변경된 부분만 업데이트 하므로 성능을 향상시킬 수 있다.</p>
<p><strong>React의 장점</strong>은 이와 같이 재사용가능한 컴포넌트로 코드의 재사용성과 유지보수성을 향상시킨다. 그리고 빠른 UI를 업데이트할 수 있다는 점이다. 
React는 널리 사용되고 있는 라이브러리로, 다양한 지원과 커뮤니티 생태계를 가지고 있다.</p>
<p>하지만 React는 처음에 익숙하지 않은 개념과 문법을 갖고 있어서 초기 학습곡선이 있을 수 있고, 
대규모 애플리케이션에서 상태관리가 복잡해질 수 있다. 이를 해결하기 위해 Redux, MobX등의 상태 관리 라이브러리를 사용할 수 있다. 
SEO(검색 엔진 최적화_); React는 클라이언트 측에서 렌더링되기 때문에 초기 로드 시 SEO에 일부 문제가 있을 수 있다. 이를 해결하기 위해 서버 사이드 렌더링을 사용할 수 있다.</p>
<p>React를 기반으로 한 크로스 플랫폼 모바일 애플리케이션 개발 프레임워크인 <strong>React Native는 ios 및 android 애플리케이션 개발을 가능하게 한다.</strong>
React를 사용하여 <strong>가상현실(VR) 및 증강현실(AR) 애플리케이션을 개발할 수 있는 React VR도 가능하다.</strong>
React는 지속적으로 성장하고있고, 새로운 도구와 라이브러리, 컴포넌트 등이 계속해서 등장하고 발전하고 있다. </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[백준 (c++) 2292 벌집]]></title>
            <link>https://velog.io/@eunbyeol_1230/%EB%B0%B1%EC%A4%80-c-2292-%EB%B2%8C%EC%A7%91</link>
            <guid>https://velog.io/@eunbyeol_1230/%EB%B0%B1%EC%A4%80-c-2292-%EB%B2%8C%EC%A7%91</guid>
            <pubDate>Sat, 27 May 2023 07:58:15 GMT</pubDate>
            <description><![CDATA[<p><a href="https://www.acmicpc.net/problem/2292">문제보기</a></p>
<p><img src="https://velog.velcdn.com/images/eunbyeol_1230/post/991554a1-f514-4c16-a131-0a55ee971dde/image.png" alt=""></p>
<p>위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다.</p>
<p>입력
첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다.</p>
<p>출력
입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다.</p>
<p>예제 입력 1 
13</p>
<p>예제 출력 1 
3</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

int main()
{

    int N;
    cin &gt;&gt; N;
    int cnt = 1;
    int num = 1;
    int step = 1;
    while (N &gt; num)
    {
        num += 6 * step;
        cnt++;
        step++;
    }

    cout &lt;&lt; cnt;

    return 0;
}

// 1
// 234567 (6)
// 8 9 10 11 12 13 14 15 16 17 18 19 (12)
// 20 ~ 37 (18)
// 38 ~61 (24)</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[백준 (c++) 2903 중앙 이동 알고리즘
]]></title>
            <link>https://velog.io/@eunbyeol_1230/%EB%B0%B1%EC%A4%80-c-2903-%EC%A4%91%EC%95%99-%EC%9D%B4%EB%8F%99-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98</link>
            <guid>https://velog.io/@eunbyeol_1230/%EB%B0%B1%EC%A4%80-c-2903-%EC%A4%91%EC%95%99-%EC%9D%B4%EB%8F%99-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98</guid>
            <pubDate>Fri, 26 May 2023 15:03:33 GMT</pubDate>
            <description><![CDATA[<p><a href="https://www.acmicpc.net/problem/2903">문제보기</a></p>
<p>문제
상근이는 친구들과 함께 SF영화를 찍으려고 한다. 이 영화는 외계 지형이 필요하다. 실제로 우주선을 타고 외계 행성에 가서 촬영을 할 수 없기 때문에, 컴퓨터 그래픽으로 CG처리를 하려고 한다.</p>
<p>외계 지형은 중앙 이동 알고리즘을 이용해서 만들려고 한다.</p>
<p>알고리즘을 시작하면서 상근이는 정사각형을 이루는 점 4개를 고른다. 그 후에는 다음과 같은 과정을 거쳐서 지형을 만든다.</p>
<p>정사각형의 각 변의 중앙에 점을 하나 추가한다.
정사각형의 중심에 점을 하나 추가한다.
초기 상태에서 위와 같은 과정을 한 번 거치면 총 4개의 정사각형이 새로 생긴다. 이와 같은 과정을 상근이가 만족할 때 까지 계속한다.</p>
<p>상근이는 어떤 점은 한 개 보다 많은 정사각형에 포함될 수 있다는 사실을 알았다. 메모리 소모량을 줄이기 위해서 중복하는 점을 한 번만 저장하려고 한다. 과정을 N번 거친 후 점 몇 개를 저장해야 하는지 구하는 프로그램을 작성하시오.</p>
<p>입력
첫째 줄에 N이 주어진다. (1 ≤ N ≤ 15)</p>
<p>출력
첫째 줄에 과정을 N번 거친 후 점의 수를 출력한다.</p>
<p>예제입력 1
1</p>
<p>예제 출력 1 
9</p>
<p>예제 입력 2 
2</p>
<p>예제 출력 2 
25</p>
<p>예제 입력 3 
5</p>
<p>예제 출력 3 
1089</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

int main()
{
    // 2 * 2=4
    // 3 * 3 =9
    // 5 * 5 =25
    // 9 * 9 =81
    // 17  * 17=289
    // 33 * 33 == 1089

    int N = 0;
    cin &gt;&gt; N;
    int ans = 0;
    int i = 2;

    while (N != 0)
    {

        i = i * 2 - 1;
        ans = i * i;

        N--;
    }
    cout &lt;&lt; ans;

    return 0;
}</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[백준 (c++) 2720 세탁소 사장 동혁]]></title>
            <link>https://velog.io/@eunbyeol_1230/%EB%B0%B1%EC%A4%80-c-2720-%EC%84%B8%ED%83%81%EC%86%8C-%EC%82%AC%EC%9E%A5-%EB%8F%99%ED%98%81</link>
            <guid>https://velog.io/@eunbyeol_1230/%EB%B0%B1%EC%A4%80-c-2720-%EC%84%B8%ED%83%81%EC%86%8C-%EC%82%AC%EC%9E%A5-%EB%8F%99%ED%98%81</guid>
            <pubDate>Fri, 26 May 2023 14:32:24 GMT</pubDate>
            <description><![CDATA[<p><a href="https://www.acmicpc.net/problem/2720">문제보기</a></p>
<p>문제
미국으로 유학간 동혁이는 세탁소를 운영하고 있다. 동혁이는 최근에 아르바이트로 고등학생 리암을 채용했다.</p>
<p>동혁이는 리암에게 실망했다.</p>
<p>리암은 거스름돈을 주는 것을 자꾸 실수한다.</p>
<p>심지어 $0.5달러를 줘야하는 경우에 거스름돈으로 $5달러를 주는것이다!</p>
<p>어쩔수 없이 뛰어난 코딩 실력을 발휘해 리암을 도와주는 프로그램을 작성하려고 하지만, 디아블로를 하느라 코딩할 시간이 없어서 이 문제를 읽고 있는 여러분이 대신 해주어야 한다.</p>
<p>거스름돈의 액수가 주어지면 리암이 줘야할 쿼터(Quarter, $0.25)의 개수, 다임(Dime, $0.10)의 개수, 니켈(Nickel, $0.05)의 개수, 페니(Penny, $0.01)의 개수를 구하는 프로그램을 작성하시오. 거스름돈은 항상 $5.00 이하이고, 손님이 받는 동전의 개수를 최소로 하려고 한다. 예를 들어, $1.24를 거슬러 주어야 한다면, 손님은 4쿼터, 2다임, 0니켈, 4페니를 받게 된다.</p>
<p>입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 거스름돈 C를 나타내는 정수 하나로 이루어져 있다. C의 단위는 센트이다. (1달러 = 100센트) (1&lt;=C&lt;=500)</p>
<p>출력
각 테스트케이스에 대해 필요한 쿼터의 개수, 다임의 개수, 니켈의 개수, 페니의 개수를 공백으로 구분하여 출력한다.</p>
<p>예제 입력 1 
3
124
25
194</p>
<p>예제 출력 1 
4 2 0 4
1 0 0 0
7 1 1 4</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

int main()
{
    int r[4] = {25, 10, 5, 1};
    int C[4] = {
        0,
    };

    int tc, T;
    cin &gt;&gt; T;
    int ans[4] = {
        0,
    };
    int c = 0;
    int n = 0;
    int cnt = 0;
    for (tc = 1; tc &lt;= T; tc++)
    {
        cin &gt;&gt; c;
        for (int i = 0; i &lt; 4; i++)
        {
            cnt = c / r[i];
            c = c % r[i];
            C[i] = cnt;
            cout &lt;&lt; C[i] &lt;&lt; &quot; &quot;;
        }
        cout &lt;&lt; &#39;\n&#39;;
    }

    return 0;
}</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[백준 (c++) 11005 진법변환2]]></title>
            <link>https://velog.io/@eunbyeol_1230/%EB%B0%B1%EC%A4%80-c-11005-%EC%A7%84%EB%B2%95%EB%B3%80%ED%99%982</link>
            <guid>https://velog.io/@eunbyeol_1230/%EB%B0%B1%EC%A4%80-c-11005-%EC%A7%84%EB%B2%95%EB%B3%80%ED%99%982</guid>
            <pubDate>Fri, 26 May 2023 13:45:15 GMT</pubDate>
            <description><![CDATA[<p><a href="https://www.acmicpc.net/problem/11005">문제보기</a></p>
<p>문제
10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오.</p>
<p>10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.</p>
<p>A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35</p>
<p>입력
첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36) N은 10억보다 작거나 같은 자연수이다.</p>
<p>출력
첫째 줄에 10진법 수 N을 B진법으로 출력한다.</p>
<p>예제 입력 1 
60466175 36</p>
<p>예제 출력 1 
ZZZZZ</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;cstring&gt;

using namespace std;

int main()
{
    long long N = 0;
    int B = 0;

    char arr[10000] = {&#39;\0&#39;};

    cin &gt;&gt; N &gt;&gt; B;

    int sum = 0;

    int num = 0;
    while (N &gt; 0)
    {
        num = N % B;
        N = N / B;
        if (num &gt;= 10)
        {
            arr[strlen(arr)] = num - 10 + &#39;A&#39;;
        }
        else
        {
            arr[strlen(arr)] = num + &#39;0&#39;;
        }
    }
    for (int i = strlen(arr) - 1; i &gt;= 0; i--)
    {
        cout &lt;&lt; arr[i];
    }

    return 0;
}
</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[백준 2745 (c++) 진법변환]]></title>
            <link>https://velog.io/@eunbyeol_1230/%EB%B0%B1%EC%A4%80-2563-c-%EC%83%89%EC%A2%85%EC%9D%B4</link>
            <guid>https://velog.io/@eunbyeol_1230/%EB%B0%B1%EC%A4%80-2563-c-%EC%83%89%EC%A2%85%EC%9D%B4</guid>
            <pubDate>Thu, 25 May 2023 05:59:37 GMT</pubDate>
            <description><![CDATA[<p><a href="https://www.acmicpc.net/problem/2745">문제</a>
문제
B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오.</p>
<p>10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.</p>
<p>A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35</p>
<p>입력
첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36)</p>
<p>B진법 수 N을 10진법으로 바꾸면, 항상 10억보다 작거나 같다.</p>
<p>출력
첫째 줄에 B진법 수 N을 10진법으로 출력한다.</p>
<p>예제 입력 1 
ZZZZZ 36
예제 출력 1 
60466175</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;cstring&gt;
#include &lt;cmath&gt;

using namespace std;

int main() {
    string str;
    int N,sum=0;
    cin &gt;&gt; str &gt;&gt; N;

    int len = str.length();

    for(int i=len-1 ;i&gt;=0;i--){

        if(str[i]-&#39;0&#39;&gt;=0 &amp;&amp; str[i] &lt;=&#39;9&#39;){
           sum += pow(N,len-1-i) * (int) (str[i]-&#39;0&#39;);
        }else{
             sum += pow(N,len-1-i) * (int) (str[i]-&#39;A&#39;+10);
        }
    }

cout &lt;&lt; sum;


    return 0;
}</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[백준 10798 (c++) 세로읽기]]></title>
            <link>https://velog.io/@eunbyeol_1230/%EB%B0%B1%EC%A4%80-10798-c-%EC%84%B8%EB%A1%9C%EC%9D%BD%EA%B8%B0</link>
            <guid>https://velog.io/@eunbyeol_1230/%EB%B0%B1%EC%A4%80-10798-c-%EC%84%B8%EB%A1%9C%EC%9D%BD%EA%B8%B0</guid>
            <pubDate>Wed, 24 May 2023 12:25:05 GMT</pubDate>
            <description><![CDATA[<p><a href="https://www.acmicpc.net/problem/10798">링크텍스트</a></p>
<p>문제
아직 글을 모르는 영석이가 벽에 걸린 칠판에 자석이 붙어있는 글자들을 붙이는 장난감을 가지고 놀고 있다. </p>
<p>이 장난감에 있는 글자들은 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’부터 ‘9’이다. 영석이는 칠판에 글자들을 수평으로 일렬로 붙여서 단어를 만든다. 다시 그 아래쪽에 글자들을 붙여서 또 다른 단어를 만든다. 이런 식으로 다섯 개의 단어를 만든다. 아래 그림 1은 영석이가 칠판에 붙여 만든 단어들의 예이다. </p>
<p>A A B C D D
a f z z 
0 9 1 2 1
a 8 E W g 6
P 5 h 3 k x</p>
<p>한 줄의 단어는 글자들을 빈칸 없이 연속으로 나열해서 최대 15개의 글자들로 이루어진다. 또한 만들어진 다섯 개의 단어들의 글자 개수는 서로 다를 수 있다. </p>
<p>심심해진 영석이는 칠판에 만들어진 다섯 개의 단어를 세로로 읽으려 한다. 세로로 읽을 때, 각 단어의 첫 번째 글자들을 위에서 아래로 세로로 읽는다. 다음에 두 번째 글자들을 세로로 읽는다. 이런 식으로 왼쪽에서 오른쪽으로 한 자리씩 이동 하면서 동일한 자리의 글자들을 세로로 읽어 나간다. 위의 그림 1의 다섯 번째 자리를 보면 두 번째 줄의 다섯 번째 자리의 글자는 없다. 이런 경우처럼 세로로 읽을 때 해당 자리의 글자가 없으면, 읽지 않고 그 다음 글자를 계속 읽는다. 그림 1의 다섯 번째 자리를 세로로 읽으면 D1gk로 읽는다. </p>
<p>그림 1에서 영석이가 세로로 읽은 순서대로 글자들을 공백 없이 출력하면 다음과 같다:</p>
<p>Aa0aPAf985Bz1EhCz2W3D1gkD6x</p>
<p>칠판에 붙여진 단어들이 주어질 때, 영석이가 세로로 읽은 순서대로 글자들을 출력하는 프로그램을 작성하시오.</p>
<p>입력
총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’부터 ‘9’ 중 하나이다. 각 줄의 시작과 마지막에 빈칸은 없다.</p>
<p>출력
영석이가 세로로 읽은 순서대로 글자들을 출력한다. 이때, 글자들을 공백 없이 연속해서 출력한다. </p>
<p>예제 입력 1 
ABCDE
abcde
01234
FGHIJ
fghij</p>
<p>예제 출력 1 
Aa0FfBb1GgCc2HhDd3IiEe4Jj</p>
<p>예제 입력 2 
AABCDD
afzz
09121
a8EWg6
P5h3kx</p>
<p>예제 출력 2 
Aa0aPAf985Bz1EhCz2W3D1gkD6x</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

int main() {
    char ch[5][16] = {&#39;\0&#39;};

    for (int i = 0; i &lt; 5; i++) {
       cin &gt;&gt; ch[i];
    }


    for (int i = 0; i &lt; 15; i++) {
        for (int j = 0; j &lt; 5; j++) {
            if (ch[j][i] != &#39;\0&#39;) {
                cout &lt;&lt; ch[j][i];
            }
        }
    }

    return 0;
}
</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[백준 2566 (c++)  최댓값]]></title>
            <link>https://velog.io/@eunbyeol_1230/%EB%B0%B1%EC%A4%80-c-2566-%EC%B5%9C%EB%8C%93%EA%B0%92</link>
            <guid>https://velog.io/@eunbyeol_1230/%EB%B0%B1%EC%A4%80-c-2566-%EC%B5%9C%EB%8C%93%EA%B0%92</guid>
            <pubDate>Wed, 24 May 2023 09:50:14 GMT</pubDate>
            <description><![CDATA[<p>9×9 격자판에 쓰여진 81개의 자연수 또는 0이 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 행 몇 열에 위치한 수인지 구하는 프로그램을 작성하시오.</p>
<p>예를 들어, 다음과 같이 81개의 수가 주어지면 이들 중 최댓값은 90이고, 이 값은 5행 7열에 위치한다</p>
<p>입력
첫째 줄부터 아홉 번째 줄까지 한 줄에 아홉 개씩 수가 주어진다. 주어지는 수는 100보다 작은 자연수 또는 0이다.</p>
<p>출력
첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다.</p>
<p>예제 입력 1 
3 23 85 34 17 74 25 52 65
10 7 39 42 88 52 14 72 63
87 42 18 78 53 45 18 84 53
34 28 64 85 12 16 75 36 55
21 77 45 35 28 75 <strong>90</strong> 76 1
25 87 65 15 28 11 37 28 74
65 27 75 41 7 89 78 64 39
47 47 70 45 23 65 3 41 44
87 13 82 38 31 12 29 29 80</p>
<p>예제 출력 1 
90
5 7</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

int main()
{
    int arr[9][9] = {
        0
    };
    for (int i = 0; i &lt; 9; i++)
    {
        for (int j = 0; j &lt; 9; j++)
        {
            cin &gt;&gt; arr[i][j];
        }
    }
    int nMax = 0;
    int idx_i = 0;
    int idx_j = 0;
    for (int i = 0; i &lt; 9; i++)
    {
        for (int j = 0; j &lt; 9; j++)
        {
            if (nMax &lt; arr[i][j])
            {
                nMax = arr[i][j];
                idx_i = i ;
                idx_j = j ;
            }
        }
    }
    cout &lt;&lt; nMax &lt;&lt; &quot;\n&quot;;
    cout &lt;&lt; idx_i +1 &lt;&lt; &quot; &quot; &lt;&lt; idx_j +1&lt;&lt; endl;
}
</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[백준 2738 (c++) 행렬덧셈]]></title>
            <link>https://velog.io/@eunbyeol_1230/%EB%B0%B1%EC%A4%80-c-2738.-%ED%96%89%EB%A0%AC%EB%8D%A7%EC%85%88</link>
            <guid>https://velog.io/@eunbyeol_1230/%EB%B0%B1%EC%A4%80-c-2738.-%ED%96%89%EB%A0%AC%EB%8D%A7%EC%85%88</guid>
            <pubDate>Wed, 24 May 2023 08:42:18 GMT</pubDate>
            <description><![CDATA[<p>문제
N*M크기의 두 행렬 A와 B가 주어졌을 때, 두 행렬을 더하는 프로그램을 작성하시오.</p>
<p>입력
첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같고, 행렬의 원소는 절댓값이 100보다 작거나 같은 정수이다.</p>
<p>출력
첫째 줄부터 N개의 줄에 행렬 A와 B를 더한 행렬을 출력한다. 행렬의 각 원소는 공백으로 구분한다.</p>
<p>예제 입력 1 
3 3
1 1 1
2 2 2
0 1 0
3 3 3
4 4 4
5 5 100</p>
<p>예제 출력 1 
4 4 4
6 6 6
5 6 100</p>
<p>&lt;행렬&gt;
행렬의 크기가 서로 같은 경우에만 할 수 있으며, 대응하는 원소끼리 더하고 뺀다.</p>
<p>임의의 크기가 같은 두 행렬 </p>
<p>A,B에 대하여
<img src="https://velog.velcdn.com/images/eunbyeol_1230/post/98820777-63ab-416a-acfe-1c1d6cdd48f0/image.png" alt=""></p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

const int MAX = 101;

int main() {
    int n, m;
    cin &gt;&gt; n &gt;&gt; m;

    int arr[MAX][MAX] = {0, };
    int arr2[MAX][MAX] = {0, };
    int result[MAX][MAX] = {0, };

    for (int i = 0; i &lt; n; i++) {
        for (int j = 0; j &lt; m; j++) {
            cin &gt;&gt; arr[i][j];
        }
    }

    for (int i = 0; i &lt; n; i++) {
        for (int j = 0; j &lt; m; j++) {
            cin &gt;&gt; arr2[i][j];
        }
    }

    for (int i = 0; i &lt; n; i++) {
        for (int j = 0; j &lt; m; j++) {
            result[i][j] = arr[i][j] + arr2[i][j];
        }
    }

    for (int i = 0; i &lt; n; i++) {
        for (int j = 0; j &lt; m; j++) {
            cout &lt;&lt; result[i][j] &lt;&lt; &quot; &quot;;
        }
        cout &lt;&lt; &quot;\n&quot;;
    }

    return 0;
}
</code></pre><blockquote>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[에라토스테네스의 체]]></title>
            <link>https://velog.io/@eunbyeol_1230/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98-%EC%B2%B4</link>
            <guid>https://velog.io/@eunbyeol_1230/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98-%EC%B2%B4</guid>
            <pubDate>Sat, 20 May 2023 14:56:07 GMT</pubDate>
            <description><![CDATA[<pre><code>// 문제
// 자연수를 입력받고 해당 숫자까지의 소수들을
// 에라토스테네스의 체를 이용하여 구하는 프로그램을 작성해보세요.
// 배열의 항목번호를 자연수라고 생각하고
// 소수면 O, 소수가 아니라면 X를 배열에 저장하세요.
//(단, 배열은 1부터 시작하며 100을 넘지 않도록 합니다.)

// 입력
// 한 개의 자연수가 주어집니다.

// 출력
// 저장한 배열을 출력합니다.

#include &lt;iostream&gt;
#include &lt;math.h&gt;
using namespace std;

int main()
{
    int n;
    cin &gt;&gt; n;
    int cnt = 0;
    int arr[101];

    char arr2[101];

    arr2[1] = &#39;X&#39;;
    for (int i = 2; i &lt;= n; i++)
    {
        arr2[i] = &#39;O&#39;;
        arr[i] = i;
    }

    for (int i = 2; i &lt;= sqrt(n); i++)
    {
        if (arr[i] == 0)
            continue;

        for (int j = 2 * i; j &lt;= n; j += i)
        {
            arr[j] = 0;
            arr2[j] = &#39;X&#39;
        }
    }

    for (int i = 1; i &lt;= n; i++)
    {
        cout &lt;&lt; arr2[i];
    }

    return 0;
}</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[벡터]]></title>
            <link>https://velog.io/@eunbyeol_1230/%EB%B2%A1%ED%84%B0</link>
            <guid>https://velog.io/@eunbyeol_1230/%EB%B2%A1%ED%84%B0</guid>
            <pubDate>Sat, 20 May 2023 14:53:30 GMT</pubDate>
            <description><![CDATA[<p>벡터란 크기조절이 동적으로 가능한 배열과 같다.</p>
<pre><code>#include &lt;cstdio&gt;
#include &lt;vector&gt;
#include &lt;algorithm&gt;

using namespace std;

int main(){

    vector &lt;int&gt; myArray(10);
    // 벡터 선언 : myArray라는 벡터의 크기는 10

     // myArray[0]=1;
    // myArray[1]=2;
    // myArray[2]=3;

    // myArray[0] = 3;

    // myArray[1] = 2;
    // myArray[8] = 4;
    // 이런식으로 값을 넣어줄수도 있으나
   for(int i=0;i&lt;10;i++){
         myArray[i] = i;
   }
           myArray.push_back(10);
        // 제일 마지막에 10을 삽입하라는 뜻으로 이렇게 데이터를 대입할 수 있음.
        // 이렇듯 배열과 다르게 벡터는 크기 조절이 되어서 처음 선언한 크기가 아니어도 데이터를 삽입하고 또 삭제할 수 있다.

    for(int i=0;i&lt;11;i++){
        printf(&quot;%d &quot;,myArray[i]);
     }

    return 0;
}


</code></pre><p><strong>vector <int> myArray(10);</strong> 
  벡터 선언
하지만 선언과 동시에 원소를 지정해줄 수도있다
<strong>vector <int> myArray(10,3);</strong>
3으로 다 세팅된 것</p>
<p>기본적으로 메소드는 4가지정도 있는데
*<em>.push_back(x) *</em>
-&gt; 해당벡터(벡터는 자료구조이고 클래스이고 구조체같은것임)에 마지막 -&gt; x값을 넣어준다
*<em>.pop_back() *</em>-&gt; 끝에서 뺀다
*<em>.resize(x) *</em>-&gt; 크기 x로 바꿔라
*<em>.size() *</em>-&gt; 현재 크기가 몇이냐</p>
<hr>
<p>  <strong>vector <int> myArray();</strong>
크기를 모르는 벡터를 선언한다.
 이 벡터는  아무것도 없는 상태이다</p>
<p><strong>myArray.push_back(1);
myArray.push_back(2);
myArray.push_back(3);</strong></p>
<p>맨 끝에다가 1, 2, 3 을 push_back을 해주면
새로운 공간 인 3개의 공간이 생기는 것임.
내가 공간을 조정할 수 있다는 뜻 . 진짜 필요한만큼만 공간을 사용할 수 있음</p>
<hr>
<p><strong>myArray.pop_back();</strong>
 공간이 2가된다
<strong>myArray.pop_back();</strong>
 공간이 1이된다 (데이터도 함께 삭제됨)</p>
<hr>
<p><strong>myArray.resize(5);</strong>
1이었던 벡터의 공간이 5개가 된다. (네개가 더생김)
<strong>myArray.resize(5,3);</strong>
5개의 공간이 되면서 나머지 4개를 추가한 빈 공간에 3으로 세팅한다.</p>
<hr>
<p><strong>myArray.size();</strong>
사이즈를 반환하는데
현재 5공간을 가지고 있기 때문에 5 반환해준다.</p>
<hr>
<p>*<em>.insert *</em>
*<em>.erase *</em>같은것도 있음 </p>
]]></description>
        </item>
    </channel>
</rss>