<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Dongi_coding 동기_코딩</title>
    <link>https://dongi-coding.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Fri, 19 Jun 2026 04:43:32 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>Dongi</managingEditor>
    <image>
      <title>Dongi_coding 동기_코딩</title>
      <url>https://tistory1.daumcdn.net/tistory/4908644/attach/1a143278891447d9925346670edfa61d</url>
      <link>https://dongi-coding.tistory.com</link>
    </image>
    <item>
      <title>[JavaScript] 문자 반복 출력하기</title>
      <link>https://dongi-coding.tistory.com/355</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제 설명&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어 있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;제한사항&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;2 &amp;le; my_string 길이 &amp;le; 5&lt;/li&gt;
&lt;li&gt;2 &amp;le; n &amp;le; 10&lt;/li&gt;
&lt;li&gt;&quot;my_string&quot;은 영어 대소문자로 이루어져 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;입출력 예&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;my_string&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;n&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;result&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;&quot;hello&quot;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;3&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;&quot;hhheeellllllooo&quot;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;입출력 예 설명&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입출력 예 #1&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&quot;hello&quot;으 각 문자를 세 번씩 반복한 &quot;hhheeellllllooo&quot;를 return 합니다.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;JavaScript&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;나의 풀이&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반복이라는 말이 나오길래 '반복문을 써야겠다.' 생각했다. 그래서 반복문을 사용했다!&lt;/p&gt;
&lt;pre id=&quot;code_1677133144316&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function solution(my_string, n) {
    let answer = &quot;&quot;;
    for (let i = 0; i &amp;lt; my_string.length; i++) {
      for (let j = 0; j &amp;lt; n; j++) {
        answer += my_string.charAt(i)
      }
    }
    return answer;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;너무나도 단조로운 코드였다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;kim870380 , 2DC , 솔 , heejiyang 외 3 명의 풀이&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1677133325607&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function solution(my_string, n) {
    var answer = [...my_string].map(v =&amp;gt; v.repeat(n)).join(&quot;&quot;);
    console.log(answer);
    return answer;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 소감을 말하자면 코드가 기가 막힌다. 어떻게 이런 생각을 할 수 있는 걸까...!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;코드 설명&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예제로 각 함수들이 어떤 역할을 하는지 알아보자!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[...my_string]에 대해 잘 몰랐었는데 이번에 찾아보니 Destructuring assignment(구조 분해 할당)이라는 문법이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 아래와 같이 예제 코드를 짠다면&lt;/p&gt;
&lt;pre id=&quot;code_1677133834956&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 예제 코드
	let str = &quot;hello&quot;;

        let answer = [...str];

        console.log(answer);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;answer의 값은 아래와 같이 나온다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;351&quot; data-origin-height=&quot;33&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CSyGM/btr0yILbPCs/XHhKdfGJZu0LK8STJ1roJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CSyGM/btr0yILbPCs/XHhKdfGJZu0LK8STJ1roJK/img.png&quot; data-alt=&quot;length가 5인 배열 형태로 출력된다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CSyGM/btr0yILbPCs/XHhKdfGJZu0LK8STJ1roJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCSyGM%2Fbtr0yILbPCs%2FXHhKdfGJZu0LK8STJ1roJK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;351&quot; height=&quot;33&quot; data-origin-width=&quot;351&quot; data-origin-height=&quot;33&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;length가 5인 배열 형태로 출력된다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기에 .map으로 배열의 요소 하나하나를 빼내어 v.repeat(n)으로 n번 반복 해준다.&lt;/p&gt;
&lt;pre id=&quot;code_1677134286010&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 예제 코드        
        let str = &quot;hello&quot;;
        const n = 3;

        let answer = [...str].map(v =&amp;gt; v.repeat(n));

        console.log(answer);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;178&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cRFVTs/btr0o68mxFi/zYxdWpHAIwHgwYIV9qprz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cRFVTs/btr0o68mxFi/zYxdWpHAIwHgwYIV9qprz0/img.png&quot; data-alt=&quot;각 요소들이 n번 반복되고 length가 5인 배열 형태로 출력된다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cRFVTs/btr0o68mxFi/zYxdWpHAIwHgwYIV9qprz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcRFVTs%2Fbtr0o68mxFi%2FzYxdWpHAIwHgwYIV9qprz0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;406&quot; height=&quot;178&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;178&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;각 요소들이 n번 반복되고 length가 5인 배열 형태로 출력된다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기에 .join(&quot;&quot;)을 사용하여 배열 요소 요소 사이에 &quot;&quot;로 붙여주면 완성이다.&lt;/p&gt;
&lt;pre id=&quot;code_1677134412340&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 예제 코드        
        let str = &quot;hello&quot;;
        const n = 3;

        let answer = [...str].map(v =&amp;gt; v.repeat(n)).join(&quot;&quot;);

        console.log(answer);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;598&quot; data-origin-height=&quot;22&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1WGiY/btr0yIYKa9A/d8x2ZUOE7F5Q5X9gf2T21K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1WGiY/btr0yIYKa9A/d8x2ZUOE7F5Q5X9gf2T21K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1WGiY/btr0yIYKa9A/d8x2ZUOE7F5Q5X9gf2T21K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1WGiY%2Fbtr0yIYKa9A%2Fd8x2ZUOE7F5Q5X9gf2T21K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;598&quot; height=&quot;22&quot; data-origin-width=&quot;598&quot; data-origin-height=&quot;22&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 코드를 머리로 생각해서 쓴 사람들은 정말 대단한 거 같다. 부럽다!  &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;프로그래머스에서 푼 문제를 복습하는 공간입니다.&lt;br /&gt;&lt;a href=&quot;https://programmers.co.kr/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://programmers.co.kr/&lt;/a&gt;&lt;/blockquote&gt;
&lt;figure id=&quot;og_1677134566737&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;프로그래머스&quot; data-og-description=&quot;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://programmers.co.kr/&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/mNIlG/hyRIrL20iC/J17MPHfWm9VKlp9BGkXww1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/kQx7A/hyRItXofuE/1GUobtd5kGWkywU6aNy201/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://programmers.co.kr/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/mNIlG/hyRIrL20iC/J17MPHfWm9VKlp9BGkXww1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/kQx7A/hyRItXofuE/1GUobtd5kGWkywU6aNy201/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래머스 코딩테스트</category>
      <category>...문법</category>
      <category>Destructuring assignment</category>
      <category>javascript</category>
      <category>map</category>
      <category>repeat</category>
      <category>구조 분해 할당</category>
      <category>문자반복출력하기</category>
      <category>문제풀이</category>
      <category>자바스크립트</category>
      <category>프로그래머스</category>
      <author>Dongi</author>
      <guid isPermaLink="true">https://dongi-coding.tistory.com/355</guid>
      <comments>https://dongi-coding.tistory.com/355#entry355comment</comments>
      <pubDate>Thu, 23 Feb 2023 15:45:17 +0900</pubDate>
    </item>
    <item>
      <title>[CS] Index?</title>
      <link>https://dongi-coding.tistory.com/354</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;필자는 캐나다에 살 때, 시원한 바람이 부는 여름, 스타벅스 파티오에 앉아 맥북으로 일을 하는 사람들이 너무 멋있어 보여서 개발자 공부를 시작했다. 그냥 뭔가 구체적이고 대단한 꿈이 아니라 그냥 그게 너무 멋있어 보였다. 개발자가 되기로 마음을 먹고 공부를 시작할 때 여러 유튜브 채널을 구독했는데...&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 160px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style13&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20.2325%; text-align: center; height: 20px;&quot;&gt;&amp;nbsp;유튜버&lt;/td&gt;
&lt;td style=&quot;width: 79.7675%; text-align: center; height: 20px;&quot;&gt;소감 또는 시청 목적&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;width: 20.2325%; text-align: center; height: 40px;&quot;&gt;생활코딩&lt;/td&gt;
&lt;td style=&quot;width: 79.7675%; text-align: center; height: 40px;&quot;&gt;Java 기초 영상을 자주 보고(잠이 진짜 잘온다. 그래서 자기전에 틀어놨었다...), 사이트가 따로 있는데&amp;nbsp; 많이 이용했다.&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;width: 20.2325%; text-align: center; height: 40px;&quot;&gt;드림코딩&lt;/td&gt;
&lt;td style=&quot;width: 79.7675%; text-align: center; height: 40px;&quot;&gt;외국에서 생활하는 개발자의 삶에 대해 많이 보았다, 개발자가 되고 싶게 열정을 심어주신다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20.2325%; text-align: center; height: 20px;&quot;&gt;나도코딩&lt;/td&gt;
&lt;td style=&quot;width: 79.7675%; text-align: center; height: 20px;&quot;&gt;파이썬 기초와 간단한 게임 만들기 프로젝트를 했었다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20.2325%; text-align: center; height: 20px;&quot;&gt;홍팍&lt;/td&gt;
&lt;td style=&quot;width: 79.7675%; text-align: center; height: 20px;&quot;&gt;SpringBoot 기초를 배웠다. 말하는게 너무 웃기고 재밌어서 시간가는 줄 모르고 공부했다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20.2325%; text-align: center; height: 20px;&quot;&gt;코딩애플&lt;/td&gt;
&lt;td style=&quot;width: 79.7675%; text-align: center; height: 20px;&quot;&gt;현재도 잘 보고 있다. 진짜 재밌다. 유용한 정보가 아주 많다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그중에서도 홍팍과 코딩애플 이분들은 진짜 재밌다.&amp;nbsp; 툭툭 무심하게 던지는 말투인데 나는 이런 점이 너무나도 재밌었다. 그래서 오늘은!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4주 전에 코딩애플에 INDEX에 관한 영상이 올라왔는데 면접 준비도 해야 하고 좋은 정보라서 여기에 정리하려 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Index&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;first_name&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;age&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;성치&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;32&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;윤발&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;48&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;성룡&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;45&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;연걸&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;걸륜&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;22&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위처럼 데이터가 데이터 베이스에 들어가 있다고 생각을 할 때 나이가 20인 행을 찾으려면 SQL문에서는 아래와 같이 찾을 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1677118034014&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM T_CHINESE_ACTORS
WHERE AGE = 20;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 명령문을 실행하면 컴퓨터는 AGE = 20인 행을 찾기 위해 위에서부터 순차적으로 20인 행을 찾는다. 문제는 데이터가 많건 적건 순차적으로 찾는다는 것이다. 데이터가 1억 개가 넘고 AGE = 20이 9000번대에 있다면 컴퓨터는 9000개 이상의 행을 AGE = 20을 찾을 때까지 순차적으로 확인해볼 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금이야 컴퓨터가 우리가 시키는 일을 묵묵히 해주지만 chatGPT를 본 필자의 생각으론 미래에 이런 식으로 컴퓨터에게 명령을 한다면 아무래도 짜증을 내면서 INDEX를 설정하라고 잔소리를 할 것 같다... (아니면 이미 짜놨겠지)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Index 이해하기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1부터 100까지의 카드가 있을 때 내가 생각하고 있는 하나의 번호를 상대방에게 맞춰보라고 묻는다면?&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상대방: 3&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나: 땡&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상대방: 70&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나: 땡&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;➡이런 식으로 맞춰보려 한다면 재수가 없는 경우엔 100번째에 맞출 수도 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 아래의 방법을 쓴다면 더 쉽다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상대방: 50 업?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나: 웅&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상대방: 75 업?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나: 노, 다운&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 방법을 데이터에도 적용한다면 반씩 빠르게 소거하며 우리가 원하는 데이터를 빠르게 찾아낼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제는 기준점이 필요하기 때문에 위의 표를 아래와 같이 순서대로 정렬(AGE 만)을 해야 한다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;age&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;32&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;45&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;48&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 정렬을 해둔 age 컬럼사본을 index라고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;데이터 베이스에서의 Index&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터 베이스에서의 index는 트리 형태를 띠고 있다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20230223_112556826.jpg&quot; data-origin-width=&quot;2923&quot; data-origin-height=&quot;2659&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCH3oE/btr0nC7sObe/JwpcFJpneHhxcbcZHC2Klk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCH3oE/btr0nC7sObe/JwpcFJpneHhxcbcZHC2Klk/img.jpg&quot; data-alt=&quot;일러스트레이터 구독이 끝나서... 허허허 손으로 하고 있다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCH3oE/btr0nC7sObe/JwpcFJpneHhxcbcZHC2Klk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCH3oE%2Fbtr0nC7sObe%2FJwpcFJpneHhxcbcZHC2Klk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;332&quot; height=&quot;302&quot; data-filename=&quot;KakaoTalk_20230223_112556826.jpg&quot; data-origin-width=&quot;2923&quot; data-origin-height=&quot;2659&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;일러스트레이터 구독이 끝나서... 허허허 손으로 하고 있다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 그림에 따라 5라는 자료를 찾기 위해서는 4보다 큰지 6보다 작은지만 물어본다면 쉽게 찾을 수 있다. (단 2번의 질문)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터 베이스에서 위와 같이 배치해 둔 트리를 전문용어로 &lt;b&gt;Binary Search Tree&lt;/b&gt;라고 부른다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 트리의 성능을 좀 더 강화할 수 있는데 노드마다 숫자를 두개에서 세개씩 넣어버리는 방법이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20230223_113459867.jpg&quot; data-origin-width=&quot;2379&quot; data-origin-height=&quot;1568&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/68wY2/btr0oAHLz26/LoxAHXBJyjfKJuAmUQghlK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/68wY2/btr0oAHLz26/LoxAHXBJyjfKJuAmUQghlK/img.jpg&quot; data-alt=&quot;B-tree&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/68wY2/btr0oAHLz26/LoxAHXBJyjfKJuAmUQghlK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F68wY2%2Fbtr0oAHLz26%2FLoxAHXBJyjfKJuAmUQghlK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;504&quot; height=&quot;332&quot; data-filename=&quot;KakaoTalk_20230223_113459867.jpg&quot; data-origin-width=&quot;2379&quot; data-origin-height=&quot;1568&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;B-tree&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;B-tree 구조는 3분의 2씩 화끈하게 잘라버릴 수 있고 단 2번의 질문으로 더 많은 양의 자료를 검색할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 트리의 성능을 좀 더 강화 할 수 있는데 그것은 바로 아래의 B+tree이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20230223_124744113.jpg&quot; data-origin-width=&quot;3086&quot; data-origin-height=&quot;1803&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Laosn/btr0p7SLAJH/QlrKdxzksYJAb9TF157md0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Laosn/btr0p7SLAJH/QlrKdxzksYJAb9TF157md0/img.jpg&quot; data-alt=&quot;범위(Range) 검색에 용이하여 요즘에 많이 쓰인다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Laosn/btr0p7SLAJH/QlrKdxzksYJAb9TF157md0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLaosn%2Fbtr0p7SLAJH%2FQlrKdxzksYJAb9TF157md0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3086&quot; height=&quot;1803&quot; data-filename=&quot;KakaoTalk_20230223_124744113.jpg&quot; data-origin-width=&quot;3086&quot; data-origin-height=&quot;1803&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;범위(Range) 검색에 용이하여 요즘에 많이 쓰인다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;정리&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&quot;컴터님 AGE = 20인 행을 찾아와 주세요&quot;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;➡ index가 없는 경우&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&amp;nbsp;모든 행을 다 뒤짐&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;➡ index가 있는 경우&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;index에서 AGE = 20을 빠르게 찾음&lt;/li&gt;
&lt;li&gt;index와 연결된 원래 테이블 행을 가져옴&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;index의 단점&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;컬럼을 복사해서 인덱스를 만들기 때문에 DB 용량이 늘어난다. (검색 작업이 필요없는 컬럼에는 index가 필요 없음)&lt;/li&gt;
&lt;li&gt;기존 컬럼의 데이터를 삽입, 수정, 삭제할 때 index에도 반영해야 하는 번거로움 ➡ 성능 하락 (크게 신경은 안 써도 됨)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 Primary key(id)는 index가 필요 없음. Primary key(id) 자체를 Clustered index라고 부른다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style4&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;출처&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;코딩애플&lt;br /&gt;&lt;a href=&quot;https://www.youtube.com/@codingapple&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.youtube.com/@codingapple&lt;/a&gt;&lt;/blockquote&gt;
&lt;figure id=&quot;og_1677124589916&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;profile&quot; data-og-title=&quot;코딩애플&quot; data-og-description=&quot;&quot; data-og-host=&quot;www.youtube.com&quot; data-og-source-url=&quot;https://www.youtube.com/@codingapple&quot; data-og-url=&quot;https://www.youtube.com/channel/UCSLrpBAzr-ROVGHQ5EmxnUg&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/q9NvL/hyRIxyEe1f/fp4qvUKHirh7LgzfTJlBZ1/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900,https://scrap.kakaocdn.net/dn/enjpXj/hyRJWjeBlF/VBLRV1xZKJYYdcg5B3fG20/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900&quot;&gt;&lt;a href=&quot;https://www.youtube.com/@codingapple&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.youtube.com/@codingapple&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/q9NvL/hyRIxyEe1f/fp4qvUKHirh7LgzfTJlBZ1/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900,https://scrap.kakaocdn.net/dn/enjpXj/hyRJWjeBlF/VBLRV1xZKJYYdcg5B3fG20/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;코딩애플&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.youtube.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Computer Science</category>
      <category>B+Tree</category>
      <category>b-tree</category>
      <category>clusteredindex</category>
      <category>Database</category>
      <category>db</category>
      <category>index</category>
      <category>tree</category>
      <category>개발자면접</category>
      <category>면접질문</category>
      <category>인덱스</category>
      <author>Dongi</author>
      <guid isPermaLink="true">https://dongi-coding.tistory.com/354</guid>
      <comments>https://dongi-coding.tistory.com/354#entry354comment</comments>
      <pubDate>Thu, 23 Feb 2023 12:58:09 +0900</pubDate>
    </item>
    <item>
      <title>[Python] 옷가게 할인 받기</title>
      <link>https://dongi-coding.tistory.com/353</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제 설명&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;머쓱이네(머쓱타드╰(*&amp;deg;▽&amp;deg;*)╯) 옷가게는 10만 원 이상 사면 5%, 30만 원 이상사면 10%, 50만 원 이상 사면 20%를 할인해줍니다. 구매한 옷의 가격 price가 주어질 때, 지불해야할 금액을 return 하도록 solution 함수를 완성해보세요.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;제한사항&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;10 &amp;le; price &amp;le; 1,000,000&lt;/li&gt;
&lt;li&gt;price는 10원 단위로(1의 자리가 0) 주어집니다.&lt;/li&gt;
&lt;li&gt;소수점 이하를 버린 정수를 return합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;입출력 예&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;price&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;result&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;150,000&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;142,500&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;580,000&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;464,000&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;입출력 예 설명&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입출력 예 #1&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;150,000원에서 5%를 할인한 142,500원을 return 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입출력 예 #2&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;580,000원에서 20%를 할인한 464,000원을 return 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;나의 풀이&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Python&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;if문을 사용할 줄 아느냐라고 묻는 문제 같아서 아래와 같이 풀었다.&lt;/p&gt;
&lt;pre id=&quot;code_1677062645445&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def solution(price):
    if price &amp;lt; 100000:
        return price
    elif price &amp;gt;= 100000 and price &amp;lt; 300000:
        return int(price - price * 0.05)
    elif price &amp;gt;= 300000 and price &amp;lt; 500000:
        return int(price - price * 0.1)
    elif price &amp;gt;= 500000 and price &amp;lt;= 1000000:
        return int(price - price * 0.2)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Sehyeon Jeong라는 분이 Dictionary를 사용해 기깔나게 푼걸 보고 박수를 쳤다.&lt;/p&gt;
&lt;pre id=&quot;code_1677063341000&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# Sehyeon Jeong님의 풀이
def solution(price):
	discount_rates = {500000: 0.8, 300000: 0.9, 100000: 0.95, 0: 1}
    	for discount_price, discount_rate in discount_rates.items():
    		if price &amp;gt;= discount_price:
        		return int(price * discount_rate)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;solution이라는 함수에 price라는 매개변수:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;discount_rates라는 딕셔너리를 선언하고 키와 값을 정해준다. 이때 500000은 20%할인한 0.8 300000은 10% 할인한 0.9 100000은 5% 할인한 0.95 0은 할인이 없으니 1로 키와 값을 정해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반복문을 discount_price와 discount_rate를 discount_rates.items()의 범주에서 돌린다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; .items()는 키와 값의 쌍을 얻을 수 있는 함수이기 때문에 딕셔너리 discount_rates의 키들은 discount_price가 되고 값들은 discount_rate가 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 매개변수 price가 discount_price(500000, 300000, 100000, 0)보다 크거나 같다면 price 곱하기 discount_rate(0.8, 0.9, 0.95, 1)을 반환한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정말 대단한 코드이다.  &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;프로그래머스에서 푼 문제를 복습하는 공간입니다.&lt;br /&gt;&lt;a href=&quot;https://programmers.co.kr/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://programmers.co.kr/&lt;/a&gt;&lt;/blockquote&gt;
&lt;figure id=&quot;og_1677064366752&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;프로그래머스&quot; data-og-description=&quot;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://programmers.co.kr/&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bVPB7p/hyRIogLIrZ/D5Asc5n0gOqjj5yVND5UH1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/7Xp2C/hyRIvNJdMI/gxS3l1u6k1ZkCofV4nRkC1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://programmers.co.kr/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bVPB7p/hyRIogLIrZ/D5Asc5n0gOqjj5yVND5UH1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/7Xp2C/hyRIvNJdMI/gxS3l1u6k1ZkCofV4nRkC1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래머스 코딩테스트</category>
      <category>programmers</category>
      <category>옷가게할인받기</category>
      <category>파이썬</category>
      <category>프로그래머스</category>
      <category>프로그래머스 문제</category>
      <author>Dongi</author>
      <guid isPermaLink="true">https://dongi-coding.tistory.com/353</guid>
      <comments>https://dongi-coding.tistory.com/353#entry353comment</comments>
      <pubDate>Wed, 22 Feb 2023 20:13:39 +0900</pubDate>
    </item>
    <item>
      <title>[CS] 컴퓨터의 구성</title>
      <link>https://dongi-coding.tistory.com/352</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;컴퓨터의 구성&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컴퓨터는 단단한 하드웨어와 소프트웨어로 구성되어 있다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;하드웨어: 지금 옆에 있는 컴퓨터 안에 단단한 것들이 하드웨어다.&lt;/li&gt;
&lt;li&gt;소프트웨어: 컴퓨터 내부에 구동하는 모든 프로그램이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;하드웨어&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;중앙 처리 장치(Central Processing Unit)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;인간으로 치면 두뇌에 해당하는 부분&lt;/li&gt;
&lt;li&gt;&amp;nbsp;기억, 해석, 연산, 제어를 담당한다. -&amp;gt; 주 기억장치에서 프로그램 명령어와 데이터를 읽어와 처리하고 명령어의 수행 순서를 제어한다.&lt;/li&gt;
&lt;li&gt;비교와 연산을 담당하는 산술논리장치(ALU Arithmetic and Logical Unit)와 명령어 해석과 실행하는 제어장치, 속도가 빠른 데이터 기억장소인 레지스터로 구성되어있음&lt;/li&gt;
&lt;li&gt;개인용 컴퓨터와 같은 소형 컴퓨터에서는 CPU를 마이크로 프로세서라고도 부름&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;274&quot; data-origin-height=&quot;36&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wey2l/btr0fUl11cE/9nt1jO549bK5tb10lbxPrK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wey2l/btr0fUl11cE/9nt1jO549bK5tb10lbxPrK/img.png&quot; data-alt=&quot;필자는 AMD사의 라이젠 마이크로 프로세서를 사용하고 있다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wey2l/btr0fUl11cE/9nt1jO549bK5tb10lbxPrK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fwey2l%2Fbtr0fUl11cE%2F9nt1jO549bK5tb10lbxPrK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;274&quot; height=&quot;36&quot; data-origin-width=&quot;274&quot; data-origin-height=&quot;36&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;필자는 AMD사의 라이젠 마이크로 프로세서를 사용하고 있다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;기억 장치(RAM, HDD)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;주기억장치와 보조기억장치로 나누어지며 RAM과 ROM도 이곳에 해당함&lt;/li&gt;
&lt;li&gt;// RAM: Random Access Memory, 컴퓨터를 작동하는 순간부터 연산을 하고 동작에 필요한 모든 내용이 전원이 유지되는 내내 이 기억장치에 저장된다고 한다. 전원이 꺼지면 모두 사라지는 RAM도 있고 기억을 해두는 RAM도 있다고 한다. 필자는 8GB 두 개, 16GB를 사용 중이다.&lt;/li&gt;
&lt;li&gt;// ROM: 고정 기억 장치, 데스크탑을 만들어 봤거나 관심이 많은 사람이면 이곳에 건전지를 장착해 봤을 가능성이 아주 높다! '아 그거?'라고 생각이 든다면 그곳이 그것이다! -&amp;gt; 보통 컴퓨터에 기본적인 운영 체제 기능이나 언어의 해석 장치(interpreter)를 내장시키기 위해 이용한다고 한다.&lt;/li&gt;
&lt;li&gt;실행 중인 프로그램과 같은 프로그램에 필요한 데이터를 일시적으로 저장한다.&lt;/li&gt;
&lt;li&gt;보조 기억 장치는 하드디스크(HDD) 등을 말하며, 주 기억 장치에 비해 속도는 느리지만 많은 자료를 영구적으로 보관할 수 있는 장점이 있다. -&amp;gt; 쉽게 말해 우리가 게임을 까는(?) 곳, 필자는 Seagate사의 HDD와 삼성 SSD를 사용하고 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;260&quot; data-origin-height=&quot;54&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3Wspk/btr0fKqsN4A/8pSKCbJoChykvKtZCBfo11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3Wspk/btr0fKqsN4A/8pSKCbJoChykvKtZCBfo11/img.png&quot; data-alt=&quot;SDD와 HDD&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3Wspk/btr0fKqsN4A/8pSKCbJoChykvKtZCBfo11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3Wspk%2Fbtr0fKqsN4A%2F8pSKCbJoChykvKtZCBfo11%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;260&quot; height=&quot;54&quot; data-origin-width=&quot;260&quot; data-origin-height=&quot;54&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SDD와 HDD&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;입출력 장치&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;입력: 마우스, 키보드 등등&lt;/li&gt;
&lt;li&gt;출력: 스피커, 프린터, 모니터 등등&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;소프트웨어&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;시스템 소프트웨어&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;운영체제(Operating System): 윈도우, 맥 OS, 리눅스, 유닉스 등등&lt;/li&gt;
&lt;li&gt;컴파일러: 우리가 배운 컴퓨터 용어(필자의 경우 Java)를 컴퓨터가 알아들을 수 있는 언어인 기계어로 번역해주는 친구 -&amp;gt; 이 번역 행위를 컴파일(Compile)이라고 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;응용 소프트웨어&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;워드프로세서: 대표적으로 Word가 있고 한국에서는 한글과 컴퓨터를 많이 쓴다(.hwp)라고 적혀있는 문서&lt;/li&gt;
&lt;li&gt;스프레드시트: 대표적으로 엑셀이 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;시스템 버스&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;하드웨어 구성 요소를 물리적으로 연결하는 선&lt;/li&gt;
&lt;li&gt;각 구성요소가 다른 구성요소로 데이터를 보낼 수 있도록 통로가 되어줌&lt;/li&gt;
&lt;li&gt;용도에 따라 데이터 버스, 주소 버스, 제어 버스로 나누어진다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;데이터 버스&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;중앙처리장치와 기타 장치 사이에서 데이터를 전달하는 통로&lt;/li&gt;
&lt;li&gt;기억 장치와 입출력 장치의 명령어와 데이터를 중앙처리장치로 보내거나 중앙처리장치의 연산 결과를 기억 장치와 입출력 장치로 보내는 '양방향' 버스.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;주소 버스&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터를 정확히 실어 나르기 위해 기억장치에 '주소'를 정해 주어야 한다. 주소 버스는 중앙처리장치가 주 기억 장치나 입출력 장치로 기억 장치 주소를 전달하는 통로이기 때문에 '단방향' 버스.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;제어 버스&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;주소 버스와 데이터 버스는 모든 장치에 공유되기 때문에 이를 제어할 수단이 필요하다.&lt;/li&gt;
&lt;li&gt;제어 버스는 중앙처리장치가 기억 장치나 입출력 장치에 제어 신호를 전달하는 통로.&lt;/li&gt;
&lt;li&gt;제어 신호 종류: 기억 장치 읽기 및 쓰기, 버스 요청 및 승인, 인터럽트 요청 및 승인, 클락, 리셋 등&lt;/li&gt;
&lt;li&gt;제어 버스는 읽기 동작과 쓰기 동작을 모두 수행하기 때문에 '양방향' 버스.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컴퓨터는 기본적으로 읽고 처리한 뒤 저장하는 과정으로 이루어진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;READ ➡ PROCESS ➡ WRITE&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 과정을 진행하면서 끊임없이 주기억 장치(RAM)와 소통한다. 이때 운영체제가 64비트라면 CPU는 RAM으로부터 데이터를 한 번에 64bit씩 읽어온다!!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;출처(References)&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;gyoogle님이 만드신 신입 개발자 전공지식 &amp;amp; 기술 면접 백과사전의 내용을 복습하는 글입니다.&lt;br /&gt;&lt;a href=&quot;https://github.com/gyoogle/tech-interview-for-developer/blob/master/Computer%20Science/Computer%20Architecture/%EC%BB%B4%ED%93%A8%ED%84%B0%EC%9D%98%20%EA%B5%AC%EC%84%B1.md&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://github.com/gyoogle/tech-interview-for-developer/blob/master/Computer%20Science/Computer%20Architecture/%EC%BB%B4%ED%93%A8%ED%84%B0%EC%9D%98%20%EA%B5%AC%EC%84%B1.md&lt;/a&gt;&lt;/blockquote&gt;
&lt;figure id=&quot;og_1677036672455&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - gyoogle/tech-interview-for-developer:   신입 개발자 전공 지식 &amp;amp; 기술 면접 백과사전  &quot; data-og-description=&quot;  신입 개발자 전공 지식 &amp;amp; 기술 면접 백과사전  . Contribute to gyoogle/tech-interview-for-developer development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/gyoogle/tech-interview-for-developer/blob/master/Computer%20Science/Computer%20Architecture/%EC%BB%B4%ED%93%A8%ED%84%B0%EC%9D%98%20%EA%B5%AC%EC%84%B1.md&quot; data-og-url=&quot;https://github.com/gyoogle/tech-interview-for-developer&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/CL2mW/hyRIz9SFBi/OggFNCzZktRfDGMznmQOpK/img.png?width=1365&amp;amp;height=613&amp;amp;face=0_0_1365_613&quot;&gt;&lt;a href=&quot;https://github.com/gyoogle/tech-interview-for-developer/blob/master/Computer%20Science/Computer%20Architecture/%EC%BB%B4%ED%93%A8%ED%84%B0%EC%9D%98%20%EA%B5%AC%EC%84%B1.md&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/gyoogle/tech-interview-for-developer/blob/master/Computer%20Science/Computer%20Architecture/%EC%BB%B4%ED%93%A8%ED%84%B0%EC%9D%98%20%EA%B5%AC%EC%84%B1.md&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/CL2mW/hyRIz9SFBi/OggFNCzZktRfDGMznmQOpK/img.png?width=1365&amp;amp;height=613&amp;amp;face=0_0_1365_613');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;GitHub - gyoogle/tech-interview-for-developer:   신입 개발자 전공 지식 &amp;amp; 기술 면접 백과사전  &lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;  신입 개발자 전공 지식 &amp;amp; 기술 면접 백과사전  . Contribute to gyoogle/tech-interview-for-developer development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;, 나무위키&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Computer Science</category>
      <category>CPU</category>
      <category>RAM</category>
      <category>ROM</category>
      <category>데이터버스</category>
      <category>소프트웨어</category>
      <category>시스템버스</category>
      <category>제어버스</category>
      <category>주소버스</category>
      <category>컴퓨터의 구성</category>
      <category>하드웨어</category>
      <author>Dongi</author>
      <guid isPermaLink="true">https://dongi-coding.tistory.com/352</guid>
      <comments>https://dongi-coding.tistory.com/352#entry352comment</comments>
      <pubDate>Wed, 22 Feb 2023 14:56:13 +0900</pubDate>
    </item>
    <item>
      <title>[Python, JavaScript, Java] 숫자 찾기</title>
      <link>https://dongi-coding.tistory.com/351</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;프로그래머스 문제 풀이입니다. 문제는 프로그래머스에서 확인하세요!&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Python&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파이썬에는 find()라는 함수가 있어서 num과 k를 문자열로 만들어준다면 아주 쉽게 정답을 도출할 수 있다. 문제는 문자열로 찾아야하기 때문에 인덱스 번호가 하나 작게 나온다는 점.&lt;/p&gt;
&lt;pre id=&quot;code_1675645373440&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def solution(num, k):
    strNum = str(num)
    strK = str(k)

    if(strNum.find(strK) != -1) :
        return strNum.find(strK) + 1
    else:
        return strNum.find(strK)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;if문으로 간단하게 해결하였다. 아래에는 한 줄에 해결한 사람들의 코드다.&lt;/p&gt;
&lt;pre id=&quot;code_1675645584367&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def solution(num, k):
	return -1 if str(k) not in str(num) else str(num).find(str(k)) + 1&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해석을 하자면 문자열로 캐스팅한 k가 문자열로 캐스팅한 num에 없다면 -1을 리턴하고 아니라면 문자열로 캐스팅한 num에서 문자열로 캐스팅한 k를 찾아 인덱스 번호로 값을 낸 다음 +1을 해서 리턴해주세요!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;JavaScript&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자바스크립트에는 indexOf()라는 함수가 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1675652057113&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function solution(num, k) {
    if (String(num).indexOf(String(k)) != -1) return String(num).indexOf(String(k)) + 1
    else return -1
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;방식은 파이썬과 같다. 아래에는 한 줄에 해결한 사람들의 코드다.&lt;/p&gt;
&lt;pre id=&quot;code_1675652174127&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function solution(num, k) {
    return num.toString().split(&quot;&quot;).map((el) =&amp;gt; Number(el)).indexOf(k) + 1 || -1
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해석을 하자면 num이라는 매개변수를 .toString()으로 문자열화 시킨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;.split(&quot;&quot;)으로 문자열화 시킨 num을 배열화한다. num이 만약 123이라면 [&quot;1&quot;, &quot;2&quot;, &quot;3&quot;] 이런식으로 만들어 줌&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;.map()으로 배열 각각의 요소를 숫자로 캐스팅해준다.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;.indexOf(k)로 인덱스 번호를 찾아내서 + 1을 더해 반환&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;|| 또는 -1 반환.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대단한 거 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Java&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자바에도 indexOf()라는 메소드가 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1675657889375&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Solution {
    public int solution(int num, int k) {
        String sNum = String.valueOf(num);
        String sK = String.valueOf(k);
        
        if(sNum.indexOf(sK) != -1) return sNum.indexOf(sK) + 1;
            else return -1;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래에는 한 줄로 해결한 사람들의 코드이다.&lt;/p&gt;
&lt;pre id=&quot;code_1675657981305&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Solution {
   public int solution(int num, int k) {
      return (&quot;-&quot; + num).indexOf(String.valueOf(k));
   }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해석을 하자면 num 앞에 -이라는 문자열을 하나 더해서 (num은 알아서 문자열로 캐스팅됌), k라는 문자열을 찾아 인덱스 값으로 반환. - 때문에 + 1을 할 필요가 없음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 코드는 정말 천재 같다.&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래머스 코딩테스트</category>
      <category>Java</category>
      <category>javascript</category>
      <category>programmers</category>
      <category>Python</category>
      <category>자바</category>
      <category>자바스크립트</category>
      <category>파이썬</category>
      <category>프로그래머스</category>
      <author>Dongi</author>
      <guid isPermaLink="true">https://dongi-coding.tistory.com/351</guid>
      <comments>https://dongi-coding.tistory.com/351#entry351comment</comments>
      <pubDate>Mon, 6 Feb 2023 13:38:50 +0900</pubDate>
    </item>
    <item>
      <title>[Java, 번역] null에 관한 흥미로운 사실들!</title>
      <link>https://dongi-coding.tistory.com/350</link>
      <description>&lt;blockquote data-ke-style=&quot;style3&quot;&gt;자바를 만지다보면 자주 마주치는 NullPointerException!&amp;nbsp;&lt;br /&gt;프로젝트 만들 때도 자주 만나서 이젠 화도 안난다... 반가워!ㅎㅎㅎ&lt;br /&gt;geeksforgeeks에서 null에 관한 재밌는 이야기 거리가 있어서 들고와서 번역해봅니다! (오역 무조건 있음)&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;거의 모든 프로그래밍 언어에서 null은 떼려야 뗄 수 없는 관계. 거의 모든 개발자들이 null 때문에 고생을 하고 있지요. 자바에서 null은 java.lang.NullPointerException과 연관이 있습니다. java.lang.package에서 클래스인 이 녀석은 자바로 프로그래밍을 실행 할 때(null이 있건 없건간에) 가끔 당체, 어디서 예외가 발생했는지도 알 수 없게 나와 우리를 절망으로 빠뜨리곤 하죠. 아래에는 자바 개발자가 알아두면 좋은 null에 관한 이야기들이 있습니다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1.&amp;nbsp; null은 대소문자 구별을 한다!&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자바에서 null은 문자 그대로 null로 표현 해야한다. 왜냐하면 대소문자 구별을 하기 때문! C언어처럼 NULL이나 0으로 사용할 수 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1675406782447&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class NullTest {
    public static void main(String[] args) throws java.lang.Exception {
		
        // java: cannot find symbol
        Object obj = NULL;
		
        // 에러 없음
        Object obj1 = null;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;NULL이라 선언한 obj는 심볼을 찾을 수 없다고 에러가 뜬다!!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;642&quot; data-origin-height=&quot;349&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/R4wYS/btrX1xGenvR/ySBlkuiijKL8H2hWN7MTx1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/R4wYS/btrX1xGenvR/ySBlkuiijKL8H2hWN7MTx1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/R4wYS/btrX1xGenvR/ySBlkuiijKL8H2hWN7MTx1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FR4wYS%2FbtrX1xGenvR%2FySBlkuiijKL8H2hWN7MTx1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;642&quot; height=&quot;349&quot; data-origin-width=&quot;642&quot; data-origin-height=&quot;349&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2.&amp;nbsp; 참조 변수의 값(Reference Variable Value) : 자바에서 참조 변수의 값은 기본으로 null이다.&lt;/h2&gt;
&lt;pre id=&quot;code_1675407137666&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class NullTest {
    private static Object obj;
    public static void main(String[] args) throws java.lang.Exception {

        System.out.println(&quot;객체 형태의 obj는 값이 &quot; + obj + &quot;이다.&quot;);
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;677&quot; data-origin-height=&quot;378&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0O4Rb/btrX2ZuVPcj/PQA2k5DMYHLJN42QmKZos1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0O4Rb/btrX2ZuVPcj/PQA2k5DMYHLJN42QmKZos1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0O4Rb/btrX2ZuVPcj/PQA2k5DMYHLJN42QmKZos1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0O4Rb%2FbtrX2ZuVPcj%2FPQA2k5DMYHLJN42QmKZos1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;677&quot; height=&quot;378&quot; data-origin-width=&quot;677&quot; data-origin-height=&quot;378&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. null 타입&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사람들이 오해하는 부분이 null은 Object나 null 타입이라 생각 하는데 사실은 그렇지 않고 null은 그 자체로 특별한 값. 어떠한 참조 타입에 선언할 수 있고 어떠한 타입으로도 캐스팅(casting)이 가능.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1675409077628&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class NullTest {
    public static void main(String[] args) throws java.lang.Exception {

        // null은 String으로 선언이 가능합니다.
        String 문자열 = null;

        // null은 Integer로  선언이 가능합니다. int는 불가능
        Integer 정수 = null;

        // null은 Double로 선언이 가능합니다.
        Double 더블 = null;

        // null은 String으로 캐스팅이 가능합니다.
        String 내문자열 = (String) null;

        // null은 Integer으로 캐스팅이 가능합니다.
        Integer 내정수 = (Integer) null;

        // null은 Double으로 캐스팅이 가능합니다.
        Double 내더블 = (Double) null;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 오토박싱과 언박싱&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;null 값이 primitive 박스 데이터 타입으로 선언이 되어 있는 경우 오토 박싱 또는 언박싱을 할 때 컴파일러가 Nullpointer 예외 에러를 던져준다.&lt;/p&gt;
&lt;pre id=&quot;code_1675418517732&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class NullTest {
    public static void main(String[] args)
            throws java.lang.Exception
    {
        // Integer는 null이 될 수 있기 때문에 괜찮지만
        Integer i = null;

        // int로 언박싱한 null은
        // NullpointerException을 던진다.
        int a = i;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;604&quot; data-origin-height=&quot;425&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xHFnS/btrX3rFyJwS/yrlkSLorardpIvf5C3Gq91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xHFnS/btrX3rFyJwS/yrlkSLorardpIvf5C3Gq91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xHFnS/btrX3rFyJwS/yrlkSLorardpIvf5C3Gq91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxHFnS%2FbtrX3rFyJwS%2FyrlkSLorardpIvf5C3Gq91%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;604&quot; height=&quot;425&quot; data-origin-width=&quot;604&quot; data-origin-height=&quot;425&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. 인스턴스오브 오퍼레이터&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자바의 instanceof 오퍼레이터는 객체가 정확히 무슨 타입인지 테스트 해보는 용도로 사용하고 있다. 만약 Expression의 값이 null이 아니라면 instanceof 오퍼레이터는 true이다. instanceof 오퍼레이터의 프로퍼티는 상당히 중요하다. 바로 이것이 타입 캐스팅 체크를 할 때 몹시 유용하기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1675419897356&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class NullTest {
    public static void main(String[] args)
            throws java.lang.Exception
    {
        Integer i = null;
        Integer j = 10;

        // false가 나옴
        System.out.println(i instanceof Integer);

        // 성공적인 컴파일링, true 나옴
        System.out.println(j instanceof Integer);
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;510&quot; data-origin-height=&quot;443&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7SiKd/btrX4keUtXr/MJXJInASfKq5JZMnElzARK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7SiKd/btrX4keUtXr/MJXJInASfKq5JZMnElzARK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7SiKd/btrX4keUtXr/MJXJInASfKq5JZMnElzARK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7SiKd%2FbtrX4keUtXr%2FMJXJInASfKq5JZMnElzARK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;510&quot; height=&quot;443&quot; data-origin-width=&quot;510&quot; data-origin-height=&quot;443&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;6. 스태틱 vs 넌 스태틱 메서드&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우리는 non-static인 메서드를 null 값을 가진 참조 변수에 부를 수 없다. 그렇게 되면 NullPointerException과 인사하게 될 것이기 때문. 하지만 우리는 static인 메서드를 null 값들을 가진 참조 변수에 부를 수 있다. static binding을 사용하여 static메서드들이 이어지면 Null pointer Exception을 던지지 않을 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1675420563487&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class Test {
	public static void main(String args[])
	{
		Test obj = null;
		obj.staticMethod();
		obj.nonStaticMethod();
	}

	private static void staticMethod()
	{
		// null 참조를 부를 수 있음
		System.out.println(
			&quot; static method,
				can be called by null reference &amp;amp; quot;);
	}

	private void nonStaticMethod()
	{
		// null 참조를 부를 수 없음
		System.out.print(&quot;
						Non - static method - &quot;);
		System.out.println(
			&quot;
			cannot be called by null reference &amp;amp; quot;);
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;※ 개인적으로 이부분 이해가 안됌. 무슨 문법이길래 더블 코테이션 마크가 저런 모양이지...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;7. == 와 !=&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자바에서 같다와 같지 않다 오퍼레이터는 null과 함께 사용할 수 있다. 이건 객체가 null 값인지 아닌지 확인할 수 있으므로 상당히 유용하다.&lt;/p&gt;
&lt;pre id=&quot;code_1675420787989&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class NullTest {
    public static void main(String args[])
    {

        // true 출력;
        System.out.println(null == null);

        // false 출력;
        System.out.println(null != null);
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;8. null은 메서드에서 독립변수로 사용될 수 있다.&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우리는 자바에서 null을 독립변수로 통과시킬 수 있고 똑같이 프린트할 수 있다. 독립변수의 데이터 타입은 참조 타입이어야하는데 리턴 타입이 void, int, double, 또는 프로그래밍 로직에 따라 다른 참조타입이 될 수 있다. 여기 메서드 &quot;print_null&quot;은 간단하게 메인 메서드를 통과한 독립변수을 프린트할 것이다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1675421267152&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.io.*;

class GFG {
	public static void print_null(String str)
	{
		System.out.println(&quot;Hey, I am : &quot; + str);
	}
	public static void main(String[] args)
	{
		GFG.print_null(null);
	}
}

// 출력: Hey, I am : null&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;9. null과 + 오퍼레이터&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자바에서 null 값과 String 변수들을 이을 수 있다. 이런 방법은 자바에서 고안되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;null 값은 오직 String 변수하고만 이어질 수 있다. 만약에 '+' 오퍼레이터로 null값을 다른 타입의 변수들과 이어준다면 에러메세지를 만나게 될 것이다. Integer a = null + 7 은 이러한 에러 메세지를 보낼 것이다. &quot;2진법 오퍼레이터 '+' 에게는 맞지 않는 피연산자 타입이다.&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1675421854550&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.io.*;

class GFG {
	public static void main(String[] args)
	{
		String str1 = null;
		String str2 = &quot;_value&quot;;
		String output = str1 + str2;
		System.out.println(&quot;Concatenated value : &quot;
						+ output);
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;자료 원문&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Gaurav Miglani가 기고한 아티클입니다!&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;a href=&quot;https://www.geeksforgeeks.org/interesting-facts-about-null-in-java/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.geeksforgeeks.org/interesting-facts-about-null-in-java/&lt;/a&gt;&lt;/blockquote&gt;
&lt;figure id=&quot;og_1675421934186&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Interesting facts about null in Java - GeeksforGeeks&quot; data-og-description=&quot;A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.&quot; data-og-host=&quot;www.geeksforgeeks.org&quot; data-og-source-url=&quot;https://www.geeksforgeeks.org/interesting-facts-about-null-in-java/&quot; data-og-url=&quot;https://www.geeksforgeeks.org/interesting-facts-about-null-in-java/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/mJ70b/hyRt0agOSF/rDRIwtk5RiKLPoXdppLr31/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200&quot;&gt;&lt;a href=&quot;https://www.geeksforgeeks.org/interesting-facts-about-null-in-java/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.geeksforgeeks.org/interesting-facts-about-null-in-java/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/mJ70b/hyRt0agOSF/rDRIwtk5RiKLPoXdppLr31/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Interesting facts about null in Java - GeeksforGeeks&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.geeksforgeeks.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Java</category>
      <category>JAVA NULL</category>
      <category>NULL</category>
      <category>null ㅡㅡ</category>
      <category>null 화난다</category>
      <category>NullPointerException</category>
      <category>null에 대해</category>
      <category>null이란</category>
      <author>Dongi</author>
      <guid isPermaLink="true">https://dongi-coding.tistory.com/350</guid>
      <comments>https://dongi-coding.tistory.com/350#entry350comment</comments>
      <pubDate>Fri, 3 Feb 2023 20:00:29 +0900</pubDate>
    </item>
    <item>
      <title>[Java] Static</title>
      <link>https://dongi-coding.tistory.com/349</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock floatRight&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;동기 코딩 얼굴 최종-01.jpg&quot; data-origin-width=&quot;2501&quot; data-origin-height=&quot;2501&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bNHcnR/btrJRuQTHFa/Ylr8FkCkXalg8ypjYuyQkk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bNHcnR/btrJRuQTHFa/Ylr8FkCkXalg8ypjYuyQkk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bNHcnR/btrJRuQTHFa/Ylr8FkCkXalg8ypjYuyQkk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNHcnR%2FbtrJRuQTHFa%2FYlr8FkCkXalg8ypjYuyQkk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;250&quot; height=&quot;2501&quot; data-filename=&quot;동기 코딩 얼굴 최종-01.jpg&quot; data-origin-width=&quot;2501&quot; data-origin-height=&quot;2501&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;안녕하세요! 오늘은 Static에 대해 알아봅시다!&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Static&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;디아블로2나 리그 오브 레전드를 플레이 해보신 분들이라면 참으로 많이 들은 단어일 것입니다. 디아블로2에서는 원소술사의 기술 중에 스태틱 필드(공교롭게도 우리가 배울 단어랑 같네요!)가 있고 리그 오브 레전드에서는 스태틱의 단검이 있지요! 두 가지 기술의 공통점이 있는데요, 바로 전기를 사용한다는 점과 &lt;b&gt;고정 데미지가 들어간다는 점&lt;/b&gt;입니다. &lt;b&gt;Static&lt;/b&gt;을 영어사전에서 찾아보면 &lt;b&gt;정적인, 고정된, 정지상태의 또는 정전기라는 뜻&lt;/b&gt;을 가지고 있습니다. '아하! 그렇다면 &lt;b&gt;Static은 뭔가 정적이고 고정된 것이구나!&lt;/b&gt;'라고 유념하고 아래의 글을 읽어주시길 바랍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;정적 멤버&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정적 멤버는 클래스에 고정된 멤버로 인스턴스(객체)를 생성하지 않고 바로 사용할 수 있는 static이 앞에 붙어 있는 필드와 메소드를 칭합니다. 영어로는 static field와 static method라고 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;정적 멤버들의 생김새&lt;/h3&gt;
&lt;pre id=&quot;code_1660656664048&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class StaticMembers {
    static 타입 필드명 = 초기값;
    
    static 리턴타입 메소드명(매개 변수){
    	실행문...;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;정적 멤버들의 작동원리&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정적 멤버들은 새로운 인스턴스를 생성하지 않아도 '클래스명.정적멤버명'을 사용하면 바로 호출하여 사용할 수 있다. 그 이유는 이들은 프로그램을 실행하면 static 메모리 영역에 저장되어 자유롭게 사용할 수 있게 된다. 문제는 너무 많은 수의 정적 멤버들을 사용하게 된다면 메모리를 차지하는 영역이 많아지게 되고 따라서 컴퓨터가 느려지거나 오류가 생길 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;정적 멤버들은 언제 사용해야해?&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;정적 필드(Static Field)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;객체마다(생성할 객체, 인스턴스) 공통적으로 사용을 해야 하는 경우에는 정적 필드를 사용하는 것이 좋습니다.&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;정적 메소드(Static Method)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인스턴스 필드를 사용하여 메소드를 실행해야 한다면 인스턴스 메소드를 사용하고 정적 필드를 사용하여 메소드를 실행해야 한다면 정적 메소드를 사용합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;정적 멤버 호출&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;클래스가 메모리로 로딩되면 바로 정적 멤버들을 사용할 수 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1660658619806&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Apple {
	static String AppleLaptop = &quot;MacBook Pro&quot;;
	
	static void AppleLaptopSizes() {
		System.out.println(&quot;13-inch, 14-inch, 16-inch&quot;);
	}
}

public class StaticMembers01 {
	public static void main(String[] args) {
		System.out.println(Apple.AppleLaptop);
		
		Apple.AppleLaptopSizes();
	}
}
/* 출력값
MacBook Pro
13-inch, 14-inch, 16-inch
*/&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 코드를 보면 인스턴스 생성 없이 바로 &lt;b&gt;클래스명.정적필드명&lt;/b&gt; 그리고 &lt;b&gt;클래스명.정적메소드명&lt;/b&gt;으로 바로 사용할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 인스턴스를 생성하고 다른 클래스들처럼 사용할 수 도 있습니다. 하지만 이클립스에서는 경고 표시가 납니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;정적 멤버의 단점과 해결방법&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인스턴스를 생성하지도 않고 바로 불러낼 수 있다는 장점이 있지만 문제는 생성자를 만들지 않기 때문에 초기화를 할 수가 없다. 그럴 때는 정적 초기화 블록을 이용해 초기화를 해줄 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;정적 초기화 블록 (Static Block)&lt;/h3&gt;
&lt;pre id=&quot;code_1660660420559&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Apple {
	static String appleLaptop = &quot;MacBook Pro&quot;;
	static void AppleLaptopSizes() {
		System.out.println(&quot;13-inch, 14-inch, 16-inch&quot;);
	}
	
	static { // 정적 초기화 블록
		System.out.println(&quot;맥북 사고 싶다.&quot;);
	}
}

public class StaticMembers01 {
	public static void main(String[] args) {
		System.out.println(Apple.appleLaptop);
		Apple.AppleLaptopSizes();
	}
}
/* 출력문
맥북 사고 싶다.
MacBook Pro
13-inch, 14-inch, 16-inch
*/&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;정적 초기화 블록은 클래스가 메모리로 로딩될 때 자동적으로 실행하기 때문에 가장 먼저 실행된다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;정적 블록은 클래스 내부에 여러 개가 선언되어도 무관하다.&lt;/li&gt;
&lt;li&gt;순서대로 실행된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;정적 메소드와 블록 사용기 주의할 점&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이들 내부에 인스턴스 필드나 메소드를 사용할 수 없다. 하지만 사용하고 싶다면 인스턴스를 생성하고 참조 변수로 접근하면 가능하다.&lt;/p&gt;
&lt;pre id=&quot;code_1660660765625&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Apple {
	static String appleLaptop = &quot;MacBook Pro&quot;;
	String ipad = &quot;ipad Pro&quot;;
	
	static void AppleLaptopSizes() {
		Apple ip = new Apple(); // 인스턴스 생성
		System.out.println(ip.ipad); // 참조 변수로 접근
	}
	
	static {
		System.out.println(&quot;맥북 사고 싶다.&quot;);
	}
}

public class StaticMembers01 {
	public static void main(String[] args) {
		System.out.println(Apple.appleLaptop);
		Apple.AppleLaptopSizes();
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;'이것이 자바다'라는 책을 참고 하였습니다. 신용권 저, 한빛미디어 출판&lt;br /&gt;유튜브 링크 : &lt;a href=&quot;https://www.youtube.com/watch?v=Sos11X7wy1M&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.youtube.com/watch?v=Sos11X7wy1M&lt;/a&gt;&lt;/blockquote&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=Sos11X7wy1M&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/i6jDz/hyPsJAU9YL/hmyMa3RmgKTHFy1Q20Jt30/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/Sos11X7wy1M&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Java</category>
      <category>java initialization block</category>
      <category>java static block</category>
      <category>java static field</category>
      <category>java static members</category>
      <category>java static method</category>
      <category>자바 스태틱 메소드</category>
      <category>자바 스태틱 멤버</category>
      <category>자바 스태틱 블록</category>
      <category>자바 스태틱 필그</category>
      <author>Dongi</author>
      <guid isPermaLink="true">https://dongi-coding.tistory.com/349</guid>
      <comments>https://dongi-coding.tistory.com/349#entry349comment</comments>
      <pubDate>Tue, 16 Aug 2022 23:42:21 +0900</pubDate>
    </item>
    <item>
      <title>[Java] Enhanced For Loop</title>
      <link>https://dongi-coding.tistory.com/348</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock floatRight&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;동기 코딩 얼굴 최종-01.jpg&quot; data-origin-width=&quot;2501&quot; data-origin-height=&quot;2501&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UTXnk/btrJQcouEb6/vqHaS3PNLt9Mr9IKwOeZ6k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UTXnk/btrJQcouEb6/vqHaS3PNLt9Mr9IKwOeZ6k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UTXnk/btrJQcouEb6/vqHaS3PNLt9Mr9IKwOeZ6k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUTXnk%2FbtrJQcouEb6%2FvqHaS3PNLt9Mr9IKwOeZ6k%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;250&quot; height=&quot;250&quot; data-filename=&quot;동기 코딩 얼굴 최종-01.jpg&quot; data-origin-width=&quot;2501&quot; data-origin-height=&quot;2501&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;안녕하세요! 오늘은 enhanced for-loop, for in, for each, 확장 포문 등등으로 불리는 녀석에 대해 알아봅시다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Enhanced For Loop&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;파이썬을 배워 보신분들은 아마 이 방법이 더 친숙하실 거 같습니다. 왜냐하면 파이썬은 초반부터 for in 방식으로 반복문을 배워나가기 때문이죠! (혹시 파이썬 for 반복문 가물가물 하신 분들은 &lt;a href=&quot;https://dongi-coding.tistory.com/275?category=967522&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;여기&lt;/a&gt; 를 클릭해주세요.)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;아래는 파이썬의 반복문&lt;/b&gt;입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1660624130764&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;nums = [10, 15, 18, 20, 33]

for i in nums:
    print(i, end= &quot; &quot;)
    
# 출력값
10 15 18 20 33&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;아래는 자바의 enhanced for loop&lt;/b&gt;입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1660624251407&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class ForIn {
	public static void main(String[] args) {
    	int[] nums = {10, 15, 18, 20, 33};
        
        for(int num : nums) {
        	System.out.print(num + &quot; &quot;);
        }
    }
}

/* 출력문
10 15 18 20 33
*/&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파이썬의 in이 : (colon)인 거 말고는 거의 다른 점이 없습니다. 다만 &lt;b&gt;파이썬에서는 range를 통해서 특정 범위의 해당하는 값을 다룰 수 있는데 반해 자바에서는 불가능&lt;/b&gt;합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;자바 Enhanced for문의 특징&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;인덱스가 없다 - 특정 범위의 해당하는 값을 다룰 수 없다.&lt;/li&gt;
&lt;li&gt;무조건 처음부터 끝까지의 값을 다룬다.&lt;/li&gt;
&lt;li&gt;인덱스가 없으므로 특정 인덱스에 해당하는 값의 변화를 줄 수 도 없다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;본 내용은 강남 이젠아카데미컴퓨터학원에서 배운 내용을 복습하는 과정입니다.&lt;br /&gt;링크 : &lt;a href=&quot;https://gn.ezenac.co.kr/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://gn.ezenac.co.kr/&lt;/a&gt;&lt;/blockquote&gt;
&lt;figure id=&quot;og_1660624840263&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;강남 이젠아카데미컴퓨터학원&quot; data-og-description=&quot;강남역, 컴퓨터학원, 웹디자인학원, 편집디자인학원, 카티아학원, 캐드학원, 전산회계학원, 전산세무학원, 직장인, 실업자, 국비지원, 무료교육, 취업성공패키지, 내일배움카드, 강남컴퓨터학원&quot; data-og-host=&quot;gn.ezenac.co.kr&quot; data-og-source-url=&quot;https://gn.ezenac.co.kr/&quot; data-og-url=&quot;https://gn.ezenac.co.kr/index.asp&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dFamWq/hyPsMjpkHE/yvibPEihVdrTc7TaLVCXkk/img.jpg?width=255&amp;amp;height=268&amp;amp;face=0_0_255_268,https://scrap.kakaocdn.net/dn/FAKR6/hyPsMcDFCS/z6YFBnfkRsjVXMoSsKYdm0/img.png?width=1200&amp;amp;height=530&amp;amp;face=0_0_1200_530,https://scrap.kakaocdn.net/dn/w7yHa/hyPsOVOQEK/rv4x1bymPuj8rKjyDJ3KNK/img.png?width=1200&amp;amp;height=530&amp;amp;face=0_0_1200_530&quot;&gt;&lt;a href=&quot;https://gn.ezenac.co.kr/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://gn.ezenac.co.kr/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dFamWq/hyPsMjpkHE/yvibPEihVdrTc7TaLVCXkk/img.jpg?width=255&amp;amp;height=268&amp;amp;face=0_0_255_268,https://scrap.kakaocdn.net/dn/FAKR6/hyPsMcDFCS/z6YFBnfkRsjVXMoSsKYdm0/img.png?width=1200&amp;amp;height=530&amp;amp;face=0_0_1200_530,https://scrap.kakaocdn.net/dn/w7yHa/hyPsOVOQEK/rv4x1bymPuj8rKjyDJ3KNK/img.png?width=1200&amp;amp;height=530&amp;amp;face=0_0_1200_530');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;강남 이젠아카데미컴퓨터학원&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;강남역, 컴퓨터학원, 웹디자인학원, 편집디자인학원, 카티아학원, 캐드학원, 전산회계학원, 전산세무학원, 직장인, 실업자, 국비지원, 무료교육, 취업성공패키지, 내일배움카드, 강남컴퓨터학원&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;gn.ezenac.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Java</category>
      <category>자바 enhanced for</category>
      <category>자바 for each</category>
      <category>자바 for in</category>
      <category>자바 향상된 for문</category>
      <category>자바 확장 for문</category>
      <author>Dongi</author>
      <guid isPermaLink="true">https://dongi-coding.tistory.com/348</guid>
      <comments>https://dongi-coding.tistory.com/348#entry348comment</comments>
      <pubDate>Tue, 16 Aug 2022 13:43:33 +0900</pubDate>
    </item>
    <item>
      <title>[Java] 배열과 반복문 예제</title>
      <link>https://dongi-coding.tistory.com/347</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock floatRight&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;동기 코딩 얼굴 최종-01.jpg&quot; data-origin-width=&quot;2501&quot; data-origin-height=&quot;2501&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cfdh7h/btrJCo4ZABc/h4XN5qNP8XIAXbVQl6jAx1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cfdh7h/btrJCo4ZABc/h4XN5qNP8XIAXbVQl6jAx1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cfdh7h/btrJCo4ZABc/h4XN5qNP8XIAXbVQl6jAx1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcfdh7h%2FbtrJCo4ZABc%2Fh4XN5qNP8XIAXbVQl6jAx1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;250&quot; height=&quot;250&quot; data-filename=&quot;동기 코딩 얼굴 최종-01.jpg&quot; data-origin-width=&quot;2501&quot; data-origin-height=&quot;2501&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;안녕하세요! 오늘은 배열과 반복문의 예제들을 연습해봅시다!&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;배열과 반복문&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. A반 5명의 학생 점수(76, 55, 45, 92, 84)를 저장하는 정수형 1차원 배열 scores를 생성하여 각 학생의 점수를 출력하고 총점과 평균을 계산하시오.&lt;/h3&gt;
&lt;pre id=&quot;code_1660487273123&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;
public class ArrayALoop01 {
	public static void main(String[] args) {
		// 정수형 배열 생성
		int[] scores = { 76, 55, 45, 92, 84 };
		
		// 총점, 평균
		int sum = 0;
		double ave = 0.0;
		
		// 각 학생의 점수 출력 및 총점, 평균 계산
		System.out.println(&quot;&amp;lt; 각 학생의 점수 &amp;gt;&quot;);
		for(int i=0; i&amp;lt;scores.length; i++) {
			sum += scores[i];
			System.out.println(i+1 + &quot;번 학생: &quot; + scores[i]);
		}
		
		// 평균 계산 - sum이 int형이기 때문에 double형으로 캐스팅
		ave = (double)sum / scores.length;
		
		// 총점 및 평균 출력문
		System.out.printf(&quot;총점: %d\n평균: %.2f&quot;, sum, ave);
	}
}
/*
&amp;lt; 각 학생의 점수 &amp;gt;
1번 학생: 76
2번 학생: 55
3번 학생: 45
4번 학생: 92
5번 학생: 84
총점: 352
평균: 70.40
*/&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. A반 학생수를 입력하고 입력한 학생수 크기의 scores 배열을 생성, 각 학생의 점수를 입력하고 각각의 점수도 출력하여 A반의 총점과 평균을 구하시오.&lt;/h3&gt;
&lt;pre id=&quot;code_1660488384210&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.Scanner;

public class ArrayALoop02 {
	public static void main(String[] args) {
		// 스캐너 인스턴스 - 객체 생성
		Scanner sc = new Scanner(System.in);
		
		// 학생수 입력 받기
		System.out.print(&quot;A반의 학생수를 입력: &quot;);
		int n = sc.nextInt();
		
		// 학생수 크기의 배열 scores 생성
		int[] scores = new int[n];
		
		// 학생 점수 입력
		for(int i=0; i&amp;lt;scores.length; i++) {
			System.out.print(i+1 + &quot;번 학생 점수 입력: &quot;);
			scores[i] = sc.nextInt();
		}
		
		// 총점과 평균 변수 생성
		int sum = 0;
		double ave = 0.0;
		
		// 각각의 학생 점수 출력
		System.out.println(&quot;\n&amp;lt; A반 학생 점수 출력 &amp;gt;&quot;);
		for(int i=0; i&amp;lt;scores.length; i++) {
			sum += scores[i];
			System.out.println(i+1 + &quot;번 학생 점수: &quot; + scores[i]);
		}
		
		// 평균 계산 - sum은 int형이기 때문에 double형으로 캐스팅
		ave = (double)sum / scores.length;
		
		// 출력문
		System.out.printf(&quot;A반의 총점: %d\nA반의 평균: %.2f&quot;, sum, ave); // 평균은 소수점 둘째자리까지 출력
		
		// 스캐너 닫기
		sc.close();
	}
}

/*
A반의 학생수를 입력: 4
1번 학생 점수 입력: 98
2번 학생 점수 입력: 84
3번 학생 점수 입력: 76
4번 학생 점수 입력: 55

&amp;lt; A반 학생 점수 출력 &amp;gt;
1번 학생 점수: 98
2번 학생 점수: 84
3번 학생 점수: 76
4번 학생 점수: 55
A반의 총점: 313
A반의 평균: 78.25
*/&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;본 내용은 강남 이젠아카데미컴퓨터학원에서 배운 내용을 복습하는 과정입니다.&lt;br /&gt;링크 : &lt;a href=&quot;https://gn.ezenac.co.kr/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://gn.ezenac.co.kr/&lt;/a&gt;&lt;/blockquote&gt;
&lt;figure id=&quot;og_1660488461805&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;강남 이젠아카데미컴퓨터학원&quot; data-og-description=&quot;강남역, 컴퓨터학원, 웹디자인학원, 편집디자인학원, 카티아학원, 캐드학원, 전산회계학원, 전산세무학원, 직장인, 실업자, 국비지원, 무료교육, 취업성공패키지, 내일배움카드, 강남컴퓨터학원&quot; data-og-host=&quot;gn.ezenac.co.kr&quot; data-og-source-url=&quot;https://gn.ezenac.co.kr/&quot; data-og-url=&quot;https://gn.ezenac.co.kr/index.asp&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/coNCm2/hyPq3ev0sg/VI3uqa6kNQ3kpXHM1rCNw0/img.jpg?width=255&amp;amp;height=268&amp;amp;face=0_0_255_268,https://scrap.kakaocdn.net/dn/pSxKC/hyPqV8CFfb/GnLvftGKu4yiDs9LKeCiz1/img.png?width=1200&amp;amp;height=530&amp;amp;face=0_0_1200_530,https://scrap.kakaocdn.net/dn/BJYIU/hyPq27JQn8/xyVhNq2MKYpfVUw9WOxpB1/img.png?width=1200&amp;amp;height=530&amp;amp;face=0_0_1200_530&quot;&gt;&lt;a href=&quot;https://gn.ezenac.co.kr/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://gn.ezenac.co.kr/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/coNCm2/hyPq3ev0sg/VI3uqa6kNQ3kpXHM1rCNw0/img.jpg?width=255&amp;amp;height=268&amp;amp;face=0_0_255_268,https://scrap.kakaocdn.net/dn/pSxKC/hyPqV8CFfb/GnLvftGKu4yiDs9LKeCiz1/img.png?width=1200&amp;amp;height=530&amp;amp;face=0_0_1200_530,https://scrap.kakaocdn.net/dn/BJYIU/hyPq27JQn8/xyVhNq2MKYpfVUw9WOxpB1/img.png?width=1200&amp;amp;height=530&amp;amp;face=0_0_1200_530');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;강남 이젠아카데미컴퓨터학원&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;강남역, 컴퓨터학원, 웹디자인학원, 편집디자인학원, 카티아학원, 캐드학원, 전산회계학원, 전산세무학원, 직장인, 실업자, 국비지원, 무료교육, 취업성공패키지, 내일배움카드, 강남컴퓨터학원&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;gn.ezenac.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Java</category>
      <category>Java Array and Loop</category>
      <category>자바 배열과 반복문</category>
      <category>자바 배열과 반복문 예제</category>
      <author>Dongi</author>
      <guid isPermaLink="true">https://dongi-coding.tistory.com/347</guid>
      <comments>https://dongi-coding.tistory.com/347#entry347comment</comments>
      <pubDate>Sun, 14 Aug 2022 23:49:18 +0900</pubDate>
    </item>
    <item>
      <title>[Java] 중첩 반복문</title>
      <link>https://dongi-coding.tistory.com/346</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock floatRight&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;동기 코딩 얼굴 최종-01.jpg&quot; data-origin-width=&quot;2501&quot; data-origin-height=&quot;2501&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/S1giM/btrJB4yLwuz/Qo1kZap4BbRFfjEvxau6Bk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/S1giM/btrJB4yLwuz/Qo1kZap4BbRFfjEvxau6Bk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/S1giM/btrJB4yLwuz/Qo1kZap4BbRFfjEvxau6Bk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FS1giM%2FbtrJB4yLwuz%2FQo1kZap4BbRFfjEvxau6Bk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;250&quot; height=&quot;250&quot; data-filename=&quot;동기 코딩 얼굴 최종-01.jpg&quot; data-origin-width=&quot;2501&quot; data-origin-height=&quot;2501&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;안녕하세요! 오늘은 중첩 반복문을 연습해보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;중첩 반복문(Nested Loop Statement)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두 개 이상으로 이루어진 반복문을 중첩 반복문이라고 합니다. (두 개 2D, 세 개 3D, ... 이런 식으로 부르기도 합니다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. 정수를 입력받아 기호를 이용하여 정수의 크기 만한 정사각형 출력하기&lt;/h3&gt;
&lt;pre id=&quot;code_1660463569914&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.Scanner;

public class NestedLoopA01 {
	public static void main(String[] args) {
		// 스캐너 인스턴스 - 객체 생성
		Scanner sc = new Scanner(System.in);
		
		// 정수 입력
		System.out.println(&quot;직사각형을 출력합니다.&quot;);
		System.out.print(&quot;정수 입력: &quot;);
		int n = sc.nextInt();
		
		// 정사각형 출력
		for(int i=0; i&amp;lt;n; i++) { // i=1이라면 i&amp;lt;=도 가능
			for(int j=0; j&amp;lt;n; j++) { // j=1이라면 j&amp;lt;=도 가능
				System.out.print(&quot;★&quot;);  // 기호
			}
			System.out.print(&quot;\n&quot;); // 줄 바꿈
		}
			
		
		// 스캐너 닫기	
		sc.close();
	}
}
/* 
정수 입력: 6
★★★★★★
★★★★★★
★★★★★★
★★★★★★
★★★★★★
★★★★★★
*/&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;줄 간격 때문에 정확히 정사각형이 나오진 않네요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 두 개의 정수를 입력받아 직사각형 만들기&lt;/h3&gt;
&lt;pre id=&quot;code_1660464026162&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.Scanner;

public class NestedLoopA02 {
	public static void main(String[] args) {
		
		// 스캐너 인스턴스 - 객체 생성
		Scanner sc = new Scanner(System.in);
		
		// 정수 두 개 입력 받기
		System.out.println(&quot;직사각형을 출력합니다.&quot;);
		System.out.print(&quot;세로: &quot;);
		int y = sc.nextInt();
		System.out.print(&quot;가로: &quot;);
		int x = sc.nextInt();
		
		// 직사각형 만들기 - 첫번 째 반복문 = 세로 y, 두번 째 반복문 = 가로 x
		for(int i=0; i&amp;lt;y; i++) { // 세로
			for(int j=0; j&amp;lt;x; j++) { // 가로
				System.out.print(&quot;*&quot;); // 기호
			}
			System.out.println(); // 줄 바꿈
		}
		
		// 스캐너 닫기
		sc.close();
	}
}
/*
직사각형을 출력합니다.
세로: 5
가로: 3
***
***
***
***
***
*/&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3.&amp;nbsp; 길이를 정수로 입력 받아 왼쪽 아래가 직각인 삼각형 만들기&lt;/h3&gt;
&lt;pre id=&quot;code_1660469480048&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.Scanner;

public class NestedLoopA03 {
	public static void main(String[] args) {
		// 스캐너 인스턴스 - 객체 생성
		Scanner sc = new Scanner(System.in);
		
		// 가로 길이 정수 입력
		System.out.println(&quot;왼쪽 아래가 직각인 삼각형을 만듭니다.&quot;);
		System.out.print(&quot;가로 길이 입력: &quot;);
		int n = sc.nextInt();
		
		// 직각 삼각형 그리기
		for(int i=1; i&amp;lt;=n; i++) {   // 세로 길이
			for(int j=1; j&amp;lt;=i; j++) { // 가로 길이
				System.out.print(&quot;*&quot;); // 기호
			}
			System.out.println(); // 줄 바꿈
		}
		
		// 스캐너 닫기
		sc.close();
	}
}

/*
왼쪽 아래가 직각인 삼각형을 만듭니다.
가로 길이 입력: 5
*
**
***
****
*****
*/&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. 길이를 정수로 입력 받아 왼쪽 위가 직각인 삼각형 만들기&lt;/h3&gt;
&lt;pre id=&quot;code_1660470211988&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.Scanner;

public class NestedLoopA04 {
	public static void main(String[] args) {
		// 스캐너 인스턴스 - 객체 생성
		Scanner sc = new Scanner(System.in);
		
		// 정수 입력 받기
		System.out.println(&quot;왼쪽 위가 직각인 삼각형을 출력합니다.&quot;);
		System.out.print(&quot;정수 입력: &quot;);
		int n = sc.nextInt();
		
		// 왼쪽 위가 직각인 삼각형
		for(int i=1; i&amp;lt;=n; i++) { // 세로 길이
			for(int j=1; j&amp;lt;n-i+2; j++) { // 가로 길이 n은 정해져 있고 i는 숫자가 계속 커지니까 *을 점점 줄여가며 출력가능
//			for(int j=n; j&amp;gt;=i; j--) &amp;lt;- 이것도 가능
//			for(int j=i; j&amp;lt;=n; j++) &amp;lt;- 역시 가능
				System.out.print(&quot;*&quot;); // 기호
			}
			System.out.println(); // 줄 바꿈
		}
		
		// 스캐너 닫기
		sc.close();
	}
}
/*
왼쪽 위가 직각인 삼각형을 출력합니다.
정수 입력: 5
*****
****
***
**
*
*/&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5. 길이를 정수로 입력 받아 오른쪽 아래가 직각인 삼각형 만들기&lt;/h3&gt;
&lt;pre id=&quot;code_1660471531157&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.Scanner;

public class NestedLoopA05 {
	public static void main(String[] args) {
		// 스캐너 인스턴스 - 객체 생성
		Scanner sc = new Scanner(System.in);
		
		// 정수 입력 받기
		System.out.println(&quot;오른쪽 아래가 직각인 삼각형을 출력합니다.&quot;);
		System.out.print(&quot;정수 입력: &quot;);
		int n = sc.nextInt();
		
		// 오른쪽 아래가 직각인 삼각형 만들기
		for(int i=1; i&amp;lt;=n; i++) { // 세로 길이
			for(int j=1; j&amp;lt;=n-i; j++) { // 빈칸의 가로 길이
//			for(int j=n-1; j&amp;gt;=i; j--)	&amp;lt;- 얘도 가능
				System.out.print(&quot; &quot;);
			}
			for(int j=1; j&amp;lt;=i; j++) { // 기호의 가로 길이
				System.out.print(&quot;*&quot;);
			}
			System.out.println(); // 줄바꿈
		}
		
		// 스캐너 닫기
		sc.close();
	}
}
/*
오른쪽 아래가 직각인 삼각형을 출력합니다.
정수 입력: 5
    *
   **
  ***
 ****
*****
*/&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;6. 길이를 정수로 입력 받아 오른쪽 위가 직각인 삼각형 만들기&lt;/h3&gt;
&lt;pre id=&quot;code_1660472656625&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.Scanner;

public class NestedLoopA06 {
	public static void main(String[] args) {
		// 스캐너 인스턴스 - 객체 생성
		Scanner sc = new Scanner(System.in);
		
		// 정수 입력 받기
		System.out.println(&quot;오른쪽 위가 직각인 삼각형을 출력합니다.&quot;);
		System.out.print(&quot;정수 입력: &quot;);
		int n = sc.nextInt();
		
		// 오른쪽 위가 직각인 삼각형 만들기 - 왼쪽 위가 직각인 삼각형에 빈칸만 넣으면 된다.
		for(int i=1; i&amp;lt;=n; i++) { // 세로 길이
			for(int j=1; j&amp;lt;i; j++) { // 빈칸 가로 길이
				System.out.print(&quot; &quot;);
			}
			for(int j=1; j&amp;lt;n-i+2; j++) { // 기호 가로 길이
//			for(int j=n; j&amp;gt;=i; j--) &amp;lt;- 얘도 가능
				System.out.print(&quot;*&quot;);
			}
			System.out.println(); // 줄 바꿈
		}
		
		// 스캐너 닫기
		sc.close();
	}
}
/*
오른쪽 위가 직각인 삼각형을 출력합니다.
정수 입력: 5
*****
 ****
  ***
   **
    *
*/&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;7.&amp;nbsp; 정수 하나를 입력 받아 그 정수의 소수를 모두 출력하고 개수와 합계를 구하시오.&lt;/h3&gt;
&lt;pre id=&quot;code_1660475012540&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.Scanner;

public class NestedLoopA07 {
	public static void main(String[] args) {
		// 스캐너 인스턴스 - 객체 생성
		Scanner sc = new Scanner(System.in);
		
		// 정수 입력
		System.out.println(&quot;입력한 정수까지 범위 안에 있는 소수를 찾습니다.&quot;);
		System.out.print(&quot;정수 입력: &quot;);
		int n = sc.nextInt();
		
		// 소수의 개수와 합계
		int count = 0, sum = 0;
		
		// 소수 찾기 - 1은 소수가 아니기 때문에 2부터 시작
		for(int i=2; i&amp;lt;=n; i++) {
			for(int j=2; j&amp;lt;=i; j++) {
				if(i==j) {
					System.out.print(i + &quot; &quot;);
					++count; // 자신의 값을 1 증가 시키고 난 후 대입
					sum += i;
				}
				if(i%j==0) {
					break;
				}
			}
		}
		
		// 출력문
		System.out.printf(&quot;\n소수의 개수: %2d\n소수의 합계: %2d&quot;, count, sum);
		
		// 스캐너 닫기
		sc.close();
	}
}

/*
입력한 정수까지 범위 안에 있는 소수를 찾습니다.
정수 입력: 50
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 
소수의 개수: 15
소수의 합계: 328
*/&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;8. 정수 하나를 입력 받아 그 정수의 범위 내에 있는 모든 완전수를 출력하고 완전수의 개수와 합계를 구하시오.&lt;/h3&gt;
&lt;pre id=&quot;code_1660479265156&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.Scanner;

public class NestedLoopA08 {
	public static void main(String[] args) {
		// 스캐너 인스턴스 - 객체 생성
		Scanner sc = new Scanner(System.in);
		
		// 정수 입력 받기
		System.out.println(&quot;완전수를 구합니다.&quot;);
		System.out.print(&quot;정수 입력: &quot;);
		int n = sc.nextInt();
		
		// 완전수의 개수와 합계
		int count = 0, sum = 0;
		
		// 완전수 구하기
		for(int i=2; i&amp;lt;=n; i++) { // &amp;lt;- 완전수 후보
			int s = 0;
			for(int j=1; j&amp;lt;=i/2; j++) { // &amp;lt;- 약수 구하기
				if(i%j == 0) {
					s += j; // 약수의 합
				}
			}
			if(i==s) {
				System.out.print(i + &quot; &quot;);
				++count; // &amp;lt;- 완전수의 개수 (전위  증가 연산자: 자신의 값을 1 증가 시키고 난 후 대입)
				sum += i; // &amp;lt;- 완전수의 합 
			}
		}
		System.out.println();
		System.out.printf(&quot;%d까지의 완전수는 %d개있고 그의 합은 %d입니다.&quot;, n, count, sum);
		
		// 스캐너 닫기
		sc.close();
	}
}
/*
완전수를 구합니다.
정수 입력: 10000
6 28 496 8128 
10000까지의 완전수는 4개있고 그의 합은 8658입니다.
*/&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;본 내용은 강남 이젠아카데미컴퓨터학원에서 배운 내용을 복습하는 과정입니다.&lt;br /&gt;링크 : &lt;a href=&quot;https://gn.ezenac.co.kr/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://gn.ezenac.co.kr/&lt;/a&gt;&lt;/blockquote&gt;
&lt;figure id=&quot;og_1660479349910&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;강남 이젠아카데미컴퓨터학원&quot; data-og-description=&quot;강남역, 컴퓨터학원, 웹디자인학원, 편집디자인학원, 카티아학원, 캐드학원, 전산회계학원, 전산세무학원, 직장인, 실업자, 국비지원, 무료교육, 취업성공패키지, 내일배움카드, 강남컴퓨터학원&quot; data-og-host=&quot;gn.ezenac.co.kr&quot; data-og-source-url=&quot;https://gn.ezenac.co.kr/&quot; data-og-url=&quot;https://gn.ezenac.co.kr/index.asp&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/coNCm2/hyPq3ev0sg/VI3uqa6kNQ3kpXHM1rCNw0/img.jpg?width=255&amp;amp;height=268&amp;amp;face=0_0_255_268,https://scrap.kakaocdn.net/dn/pSxKC/hyPqV8CFfb/GnLvftGKu4yiDs9LKeCiz1/img.png?width=1200&amp;amp;height=530&amp;amp;face=0_0_1200_530,https://scrap.kakaocdn.net/dn/BJYIU/hyPq27JQn8/xyVhNq2MKYpfVUw9WOxpB1/img.png?width=1200&amp;amp;height=530&amp;amp;face=0_0_1200_530&quot;&gt;&lt;a href=&quot;https://gn.ezenac.co.kr/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://gn.ezenac.co.kr/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/coNCm2/hyPq3ev0sg/VI3uqa6kNQ3kpXHM1rCNw0/img.jpg?width=255&amp;amp;height=268&amp;amp;face=0_0_255_268,https://scrap.kakaocdn.net/dn/pSxKC/hyPqV8CFfb/GnLvftGKu4yiDs9LKeCiz1/img.png?width=1200&amp;amp;height=530&amp;amp;face=0_0_1200_530,https://scrap.kakaocdn.net/dn/BJYIU/hyPq27JQn8/xyVhNq2MKYpfVUw9WOxpB1/img.png?width=1200&amp;amp;height=530&amp;amp;face=0_0_1200_530');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;강남 이젠아카데미컴퓨터학원&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;강남역, 컴퓨터학원, 웹디자인학원, 편집디자인학원, 카티아학원, 캐드학원, 전산회계학원, 전산세무학원, 직장인, 실업자, 국비지원, 무료교육, 취업성공패키지, 내일배움카드, 강남컴퓨터학원&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;gn.ezenac.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Java</category>
      <category>Java</category>
      <category>자바 Nested Loop Statement</category>
      <category>자바 이중 반복문</category>
      <category>자바 중첩 반복문</category>
      <author>Dongi</author>
      <guid isPermaLink="true">https://dongi-coding.tistory.com/346</guid>
      <comments>https://dongi-coding.tistory.com/346#entry346comment</comments>
      <pubDate>Sun, 14 Aug 2022 17:08:24 +0900</pubDate>
    </item>
  </channel>
</rss>