<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>ab0utcom 님의 블로그</title>
    <link>https://ab0utcom.tistory.com/</link>
    <description>ab0utcom 님의 블로그 입니다.</description>
    <language>ko</language>
    <pubDate>Sat, 26 Sep 2026 22:22:30 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>ab0utcom</managingEditor>
    <item>
      <title>[Rankk.org]Level3/42: Weak algorithm</title>
      <link>https://ab0utcom.tistory.com/52</link>
      <description>&lt;pre id=&quot;code_1783672785494&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int floor_div2(int x)
{
    return (x &amp;gt;= 0) ? x / 2 : (x - 1) / 2;
}

int d2e(int c)
{
    return 102 - (c - 99) + 4 * floor_div2(c - 99);
}

int e2d(int x)
{
    for (int c = 0; c &amp;lt; 256; c++)
    {
        if (d2e(c) == x)
            return c;
    }

    return -1;
}


char str[] =
&quot;739B9D9895939EA45447A1969B43868C843F89913F3B718B7B7E8D8A347E87318477752D816E6F7B6F6B267E7575662F&quot;;


int main()
{
    int len = sizeof(str) - 1;
    int count = len / 2;

    for (int i = 0; i &amp;lt; len; i += 2)
    {
        unsigned int num;
        sscanf(&amp;amp;str[i], &quot;%2X&quot;, &amp;amp;num);

        int distance = count - 1 - i / 2;

        num -= distance;

        printf(&quot;%c&quot;, e2d(num));
    }

    return 0;
}&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;/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;a-&amp;gt;64&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;b-&amp;gt;63&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;c-&amp;gt;66&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;d-&amp;gt;65&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;e-&amp;gt;68&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;f-&amp;gt;67&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;g-&amp;gt;6A&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;h-&amp;gt;69&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런식으로 16진수 상에서 -1과 +3을 반복하면서 커진다. 이를 잘 다듬어서 d2e를 만들었고, 역으로 e2d를 만든다.&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;ab-&amp;gt;6563&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ac-&amp;gt;6566&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;bc-&amp;gt;6466&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;이런 사고를 코드로 구현한거다. Level3에 복잡한 게 많은 것 같은데, 이건 그나마 쉬운 편인 것 같다.&lt;/p&gt;</description>
      <author>ab0utcom</author>
      <guid isPermaLink="true">https://ab0utcom.tistory.com/52</guid>
      <comments>https://ab0utcom.tistory.com/52#entry52comment</comments>
      <pubDate>Fri, 10 Jul 2026 17:42:57 +0900</pubDate>
    </item>
    <item>
      <title>[Rankk]Level2/5: Mastermind</title>
      <link>https://ab0utcom.tistory.com/51</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1358&quot; data-origin-height=&quot;555&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mKRCn/dJMcacDOQbb/dy7lKa48CkiRHicHbyJiR0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mKRCn/dJMcacDOQbb/dy7lKa48CkiRHicHbyJiR0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mKRCn/dJMcacDOQbb/dy7lKa48CkiRHicHbyJiR0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmKRCn%2FdJMcacDOQbb%2Fdy7lKa48CkiRHicHbyJiR0%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;1358&quot; height=&quot;555&quot; data-origin-width=&quot;1358&quot; data-origin-height=&quot;555&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4자리 숫자야구를 180초동안 2번 성공해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;근데 6번 틀리면 초기화된다.&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;pre id=&quot;code_1783489879948&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import itertools
from collections import Counter

def get_hints(guess, secret):
    &quot;&quot;&quot;현재 추측값과 비밀값 간의 A(스트라이크)와 B(볼) 개수를 계산합니다.&quot;&quot;&quot;
    A = sum(1 for g, s in zip(guess, secret) if g == s)
    g_remain = [g for g, s in zip(guess, secret) if g != s]
    s_remain = [s for g, s in zip(guess, secret) if g != s]
    
    g_cnt = Counter(g_remain)
    s_cnt = Counter(s_remain)
    B = sum(min(g_cnt[k], s_cnt[k]) for k in g_cnt)
    
    return A, B

def main():
    print(&quot;====================================================&quot;)
    print(&quot;   Rankk Mastermind Solver (넌스톱 무한 연타 버전)&quot;)
    print(&quot;====================================================&quot;)
    
    digits = &quot;123456789&quot;
    
    while True:
        pool = [&quot;&quot;.join(p) for p in itertools.product(digits, repeat=4)]
        turn = 1
        
        print(&quot;\n&quot; + &quot;=&quot;*55)
        print(&quot;▶ 새로운 게임 세션 시작 (총 후보군: 6,561개)&quot;)
        print(&quot;=&quot;*55)
        
        while turn &amp;lt;= 6:
            if turn == 1:
                guess = &quot;1122&quot;
            else:
                if not pool:
                    print(&quot;\n❌ 데이터 오류: 조건에 맞는 숫자가 없습니다. 자동 리셋합니다.&quot;)
                    break
                guess = pool[0]
                
            print(f&quot;\n[{turn} / 6 회차] 추천 입력값   [ {guess} ]&quot;)
            
            # 6회차 특수 분기: 입력 후 엔터만 치면 조건 없이 즉시 새 게임으로 이동
            if turn == 6:
                input(&quot;    마지막 6회차입니다. 사이트 입력 후 [Enter]를 누르면 다음 판이 바로 시작됩니다.&quot;)
                break
                
            print(f&quot;  (현재 필터링되어 남은 정답 후보: {len(pool)}개)&quot;)
            
            # 1~5회차 정상 입력 프로세스
            try:
                A = int(input(&quot;  사이트 결과 'A' 개수 입력: &quot;))
                B = int(input(&quot;  사이트 결과 'B' 개수 입력: &quot;))
            except ValueError:
                print(&quot;  ⚠️ 숫자로만 정확히 입력해 주세요. 이번 회차를 다시 진행합니다.&quot;)
                continue
                
            # 1~5회차 중 정답을 맞춘 경우 (4A)
            if A == 4:
                print(f&quot;\n  성공! 4A 정답입니다. 다음 게임으로 즉시 넘어갑니다.&quot;)
                break
                
            pool = [candidate for candidate in pool if get_hints(guess, candidate) == (A, B)]
            turn += 1

if __name__ == &quot;__main__&quot;:
    main()&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;span style=&quot;color: #000000; text-align: left;&quot;&gt; Correct digit and correct position: A&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: left;&quot;&gt;Correct digit but wrong position: B로 간주하고 각각의 개수를 적으면 된다.&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;span style=&quot;color: #000000; text-align: left;&quot;&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;span style=&quot;color: #000000; text-align: left;&quot;&gt;진행하다가 웃는 얼굴의 파라오 아이콘이 뜨면 1번 성공한거다. 그 상태에서 1번 더 성공하면 자동으로 클리어된다.&lt;/span&gt;&lt;/p&gt;</description>
      <author>ab0utcom</author>
      <guid isPermaLink="true">https://ab0utcom.tistory.com/51</guid>
      <comments>https://ab0utcom.tistory.com/51#entry51comment</comments>
      <pubDate>Wed, 8 Jul 2026 14:53:13 +0900</pubDate>
    </item>
    <item>
      <title>글로벌 버디 프로그램 8팀 vlog제출</title>
      <link>https://ab0utcom.tistory.com/50</link>
      <description>&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;안녕하십니까 글로벌 버디 프로그램 8팀 vlog입니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;메일로 내용을 쓰기엔 영상과 사진을 포함해서 한번에 못보내고 드라이브 링크 형식으로 공유가 되길래,&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;티스토리로 공유한 점 양해 바랍니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; Hover over the text to see English!&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock floatLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;900&quot; data-origin-height=&quot;1308&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k6Ke7/dJMcagTitOK/ScyJjP89hHkKchKpNP0BRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k6Ke7/dJMcagTitOK/ScyJjP89hHkKchKpNP0BRk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k6Ke7/dJMcagTitOK/ScyJjP89hHkKchKpNP0BRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk6Ke7%2FdJMcagTitOK%2FScyJjP89hHkKchKpNP0BRk%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;294&quot; height=&quot;427&quot; data-origin-width=&quot;900&quot; data-origin-height=&quot;1308&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;div id=&quot;code_1781848668330&quot; data-ke-type=&quot;html&quot; data-source=&quot;&amp;lt;style&amp;gt;
.lang-toggle .en {
  display:none;
}

.lang-toggle:hover .ko {
  display:none;
}

.lang-toggle:hover .en {
  display:block;
}

.lang-toggle:hover .ko {
  display:none;
}
&amp;lt;/style&amp;gt;

&amp;lt;div class=&amp;quot;lang-toggle&amp;quot;&amp;gt;
  &amp;lt;div class=&amp;quot;ko&amp;quot;&amp;gt;
    처음 만난 저희는 밥부터 빠르게 먹어보자 생각했십니더&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

    외국인들과 먹기에 좋을 적당한 느좋 메뉴를 고민하다가, 국룰 밥약 장소인&amp;lt;br&amp;gt;
    &amp;lt;율천회관&amp;gt;과 &amp;lt;일미리 금계 찜닭&amp;gt; 두 후보를 골랐습니다. &amp;phi;(゜▽゜*)♪&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;
  &amp;lt;/div&amp;gt;

  &amp;lt;div class=&amp;quot;en&amp;quot;&amp;gt;
    Since it was our first time meeting, we thought it would be best to grab a meal together first and get comfortable with each other.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

    We wanted something with a nice atmosphere that would also be easy for international students to enjoy, so after some thought, we narrowed it down to two classic go-to spots for a meal gathering:&amp;lt;br&amp;gt;

    Yulcheon Hoegwan and Ilmiri Geumgye Jjimdak.&amp;phi;(゜▽゜*)♪
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&quot;&gt;
&lt;style&gt;
.lang-toggle .en {
  display:none;
}

.lang-toggle:hover .ko {
  display:none;
}

.lang-toggle:hover .en {
  display:block;
}

.lang-toggle:hover .ko {
  display:none;
}
&lt;/style&gt;
&lt;div class=&quot;lang-toggle&quot;&gt;
&lt;div class=&quot;ko&quot;&gt;처음 만난 저희는 밥부터 빠르게 먹어보자 생각했십니더&lt;br /&gt;&lt;br /&gt;외국인들과 먹기에 좋을 적당한 느좋 메뉴를 고민하다가, 국룰 밥약 장소인&lt;br /&gt;&amp;lt;율천회관&amp;gt;과 &amp;lt;일미리 금계 찜닭&amp;gt; 두 후보를 골랐습니다. &amp;phi;(゜▽゜*)♪&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;en&quot;&gt;Since it was our first time meeting, we thought it would be best to grab a meal together first and get comfortable with each other.&lt;br /&gt;&lt;br /&gt;We wanted something with a nice atmosphere that would also be easy for international students to enjoy, so after some thought, we narrowed it down to two classic go-to spots for a meal gathering:&lt;br /&gt;Yulcheon Hoegwan and Ilmiri Geumgye Jjimdak.&amp;phi;(゜▽゜*)♪&lt;/div&gt;
&lt;/div&gt;
&lt;/div&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;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&gt;&lt;figure class=&quot;imageblock floatRight&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;709&quot; data-origin-height=&quot;1049&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dV7cxh/dJMcaiKhxTH/Oh9VHPYDUurV1nB1wIzQH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dV7cxh/dJMcaiKhxTH/Oh9VHPYDUurV1nB1wIzQH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dV7cxh/dJMcaiKhxTH/Oh9VHPYDUurV1nB1wIzQH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdV7cxh%2FdJMcaiKhxTH%2FOh9VHPYDUurV1nB1wIzQH0%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;267&quot; height=&quot;395&quot; data-origin-width=&quot;709&quot; data-origin-height=&quot;1049&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div id=&quot;code_1781849463536&quot; data-ke-type=&quot;html&quot; data-source=&quot;&amp;lt;div class=&amp;quot;lang-toggle&amp;quot;&amp;gt;
  &amp;lt;div class=&amp;quot;ko&amp;quot;&amp;gt;
    엣큥~!&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

    동아리하느라 늦어버려서, 7시 30분까지 가야하는 율천회관에 못간 것이와요.&amp;lt;br&amp;gt;
    그래서 찜닭 먹으러 갔습니다. &amp;#96;(*&amp;gt;﹏&amp;lt;*)&amp;prime;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

    제가 기숙사에 갔다 오는 동안, 같은 한국인 멤버 승혁 씨한테 간장맛에 순한맛으로 부탁드렸는데, 막상 가보니까 고추장에 보통맛인 겁니다~~&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

    다행히 외국인 두 명이 「맵잘알」이었어서 그렇게 안 맵고 맛있다고 했습니다.&amp;lt;br&amp;gt;
    고추장맛 처음 먹어봤는데, 오히려 좋았습니다.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

    야르
  &amp;lt;/div&amp;gt;

  &amp;lt;div class=&amp;quot;en&amp;quot;&amp;gt;
    Oopsie~!&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

    We got held up with club activities and ended up running late, so we couldn't make it to Yulcheon Hoegwan before 7:30 PM.&amp;lt;br&amp;gt;
    As a result, we went for jjimdak instead. &amp;#96;(*&amp;gt;﹏&amp;lt;*)&amp;prime;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

    While I was making a quick trip back to the dorm, I asked Seunghyeok, another Korean member, to order the soy-sauce version with the mild spice level.&amp;lt;br&amp;gt;
    But when I finally got there, it turned out we somehow ended up with the gochujang version at the regular spice level~~&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

    Fortunately, two of our international members were pretty good with spicy food, so they said it wasn't too spicy and actually tasted great.&amp;lt;br&amp;gt;
    It was my first time trying the gochujang version, and honestly, I ended up liking it even more.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

    Yarrr~(It is a korean SLANG when korean eat delicious food:D)
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&quot;&gt;
&lt;div class=&quot;lang-toggle&quot;&gt;
&lt;div class=&quot;ko&quot;&gt;엣큥~!&lt;br /&gt;&lt;br /&gt;동아리하느라 늦어버려서, 7시 30분까지 가야하는 율천회관에 못간 것이와요.&lt;br /&gt;그래서 찜닭 먹으러 갔습니다. `(*&amp;gt;﹏&amp;lt;*)&amp;prime;&lt;br /&gt;&lt;br /&gt;제가 기숙사에 갔다 오는 동안, 같은 한국인 멤버 승혁 씨한테 간장맛에 순한맛으로 부탁드렸는데, 막상 가보니까 고추장에 보통맛인 겁니다~~&lt;br /&gt;&lt;br /&gt;다행히 외국인 두 명이 「맵잘알」이었어서 그렇게 안 맵고 맛있다고 했습니다.&lt;br /&gt;고추장맛 처음 먹어봤는데, 오히려 좋았습니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;야르&lt;/div&gt;
&lt;div class=&quot;en&quot;&gt;Oopsie~!&lt;br /&gt;&lt;br /&gt;We got held up with club activities and ended up running late, so we couldn't make it to Yulcheon Hoegwan before 7:30 PM.&lt;br /&gt;As a result, we went for jjimdak instead. `(*&amp;gt;﹏&amp;lt;*)&amp;prime;&lt;br /&gt;&lt;br /&gt;While I was making a quick trip back to the dorm, I asked Seunghyeok, another Korean member, to order the soy-sauce version with the mild spice level.&lt;br /&gt;But when I finally got there, it turned out we somehow ended up with the gochujang version at the regular spice level~~&lt;br /&gt;&lt;br /&gt;Fortunately, two of our international members were pretty good with spicy food, so they said it wasn't too spicy and actually tasted great.&lt;br /&gt;It was my first time trying the gochujang version, and honestly, I ended up liking it even more.&lt;br /&gt;&lt;br /&gt;Yarrr~(It is a korean SLANG when korean eat delicious food:D)&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;616&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1EX4Z/dJMcacpQe2y/okfTMJNtn7KQ8Yno00Ln70/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1EX4Z/dJMcacpQe2y/okfTMJNtn7KQ8Yno00Ln70/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1EX4Z/dJMcacpQe2y/okfTMJNtn7KQ8Yno00Ln70/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1EX4Z%2FdJMcacpQe2y%2FokfTMJNtn7KQ8Yno00Ln70%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;316&quot; height=&quot;243&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;616&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock floatLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IKZ2w/dJMcaccg2dm/paoCmmzSMIRZqSYmsb1eZk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IKZ2w/dJMcaccg2dm/paoCmmzSMIRZqSYmsb1eZk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IKZ2w/dJMcaccg2dm/paoCmmzSMIRZqSYmsb1eZk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIKZ2w%2FdJMcaccg2dm%2FpaoCmmzSMIRZqSYmsb1eZk%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;338&quot; height=&quot;4000&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&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;div id=&quot;code_1781849837143&quot; data-ke-type=&quot;html&quot; data-source=&quot;&amp;lt;div class=&amp;quot;lang-toggle&amp;quot;&amp;gt;
  &amp;lt;div class=&amp;quot;ko&amp;quot;&amp;gt;
    후식은 학교 안에 있는 벤치에서 진행했습니다. 제가 몇 주 전에 생일이었는데, 늦게나마 축하해준 친한 선배가 준 마카롱이 딱 이 날 배송되어서, 같이 먹고자 택배를 가지러 다녀온 것이었습니다!! (￣y▽￣)╭ Ohohoho.....&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

    여러 얘기를 했는데, 아니 이 양반들이 술게임을 제대로 해본 적이 없다는 겁니다~~ 물론 한국인도 어려운 술게임이지만, 소프트의 꽃(&amp;equiv; 술겜)을 안 해봤다니 '이건 못 참지' 하면서 몇 개 가르쳐드렸습니다.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

    이름을 외워서 해야 하는 어목조동 등 아이엠 그라운드류 게임은 힘들 것 같아서, 호빵찐빵대빵을 가르쳐 드렸습니다.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;
  &amp;lt;/div&amp;gt;

  &amp;lt;div class=&amp;quot;en&amp;quot;&amp;gt;
    Dessert was enjoyed on a bench inside campus. My birthday was a few weeks ago, and a close senior who belatedly congratulated me had sent macarons, which happened to arrive that day&amp;mdash;so I went to pick up the parcel so we could all share them!! (￣y▽￣)╭ Ohohoho.....&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

    We ended up talking about all sorts of things, and I realized none of them had really tried Korean drinking games~~ Of course, even Koreans struggle with many of them, but I couldn&amp;rsquo;t let the &amp;ldquo;soft culture core&amp;rdquo; (i.e., drinking games) go unintroduced, so I taught them a few.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

    Games like &amp;ldquo;Eomok Jodong&amp;rdquo; or other name-memorization, &amp;ldquo;I&amp;rsquo;m Ground&amp;rdquo;-style games seemed a bit too difficult, so I started them off with &amp;ldquo;Hopang Jjinppang Daepang&amp;rdquo; instead.
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&quot;&gt;
&lt;div class=&quot;lang-toggle&quot;&gt;
&lt;div class=&quot;ko&quot;&gt;후식은 학교 안에 있는 벤치에서 진행했습니다. 제가 몇 주 전에 생일이었는데, 늦게나마 축하해준 친한 선배가 준 마카롱이 딱 이 날 배송되어서, 같이 먹고자 택배를 가지러 다녀온 것이었습니다!! (￣y▽￣)╭ Ohohoho.....&lt;br /&gt;&lt;br /&gt;여러 얘기를 했는데, 아니 이 양반들이 술게임을 제대로 해본 적이 없다는 겁니다~~ 물론 한국인도 어려운 술게임이지만, 소프트의 꽃(&amp;equiv; 술겜)을 안 해봤다니 '이건 못 참지' 하면서 몇 개 가르쳐드렸습니다.&lt;br /&gt;&lt;br /&gt;이름을 외워서 해야 하는 어목조동 등 아이엠 그라운드류 게임은 힘들 것 같아서, 호빵찐빵대빵을 가르쳐 드렸습니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;en&quot;&gt;Dessert was enjoyed on a bench inside campus. My birthday was a few weeks ago, and a close senior who belatedly congratulated me had sent macarons, which happened to arrive that day&amp;mdash;so I went to pick up the parcel so we could all share them!! (￣y▽￣)╭ Ohohoho.....&lt;br /&gt;&lt;br /&gt;We ended up talking about all sorts of things, and I realized none of them had really tried Korean drinking games~~ Of course, even Koreans struggle with many of them, but I couldn&amp;rsquo;t let the &amp;ldquo;soft culture core&amp;rdquo; (i.e., drinking games) go unintroduced, so I taught them a few.&lt;br /&gt;&lt;br /&gt;Games like &amp;ldquo;Eomok Jodong&amp;rdquo; or other name-memorization, &amp;ldquo;I&amp;rsquo;m Ground&amp;rdquo;-style games seemed a bit too difficult, so I started them off with &amp;ldquo;Hopang Jjinppang Daepang&amp;rdquo; instead.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;895&quot; data-origin-height=&quot;761&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2MUeo/dJMcaglqwwk/pbYRhz3h0xYkh33u7bZobK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2MUeo/dJMcaglqwwk/pbYRhz3h0xYkh33u7bZobK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2MUeo/dJMcaglqwwk/pbYRhz3h0xYkh33u7bZobK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2MUeo%2FdJMcaglqwwk%2FpbYRhz3h0xYkh33u7bZobK%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;511&quot; height=&quot;434&quot; data-origin-width=&quot;895&quot; data-origin-height=&quot;761&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div id=&quot;code_1781849861314&quot; data-ke-type=&quot;html&quot; data-source=&quot;&amp;lt;div class=&amp;quot;lang-toggle&amp;quot;&amp;gt;
  &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;
    &amp;lt;div class=&amp;quot;ko&amp;quot;&amp;gt;
      활동 중간에 있던 승혁 씨 생일도 축하했습니다.
    &amp;lt;/div&amp;gt;

    &amp;lt;div class=&amp;quot;en&amp;quot;&amp;gt;
      We also took a moment during the activity to celebrate Seunghyeok&amp;rsquo;s birthday.
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&quot;&gt;
&lt;div class=&quot;lang-toggle&quot;&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;div class=&quot;ko&quot;&gt;활동 중간에 있던 승혁 씨 생일도 축하했습니다.&lt;/div&gt;
&lt;div class=&quot;en&quot;&gt;We also took a moment during the activity to celebrate Seunghyeok&amp;rsquo;s birthday.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock floatRight&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3968&quot; data-origin-height=&quot;2232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KwKMF/dJMcaaMhLis/KnL9KobI7cOXm0vAauTW70/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KwKMF/dJMcaaMhLis/KnL9KobI7cOXm0vAauTW70/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KwKMF/dJMcaaMhLis/KnL9KobI7cOXm0vAauTW70/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKwKMF%2FdJMcaaMhLis%2FKnL9KobI7cOXm0vAauTW70%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;444&quot; height=&quot;2232&quot; data-origin-width=&quot;3968&quot; data-origin-height=&quot;2232&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;div id=&quot;code_1781850113727&quot; data-ke-type=&quot;html&quot; data-source=&quot;&amp;lt;div class=&amp;quot;lang-toggle&amp;quot;&amp;gt;
  &amp;lt;div style=&amp;quot;text-align: right;&amp;quot;&amp;gt;
    &amp;lt;div class=&amp;quot;ko&amp;quot;&amp;gt;
      같이 시험 공부 했습니다&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

      미팅룸 쓰려고 했는데, 예약이 꽉 차버려서&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

      디도 2층 솦콤에서 같이 공부했습니다.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;div class=&amp;quot;en&amp;quot;&amp;gt;
      We studied together for our exams.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

      We originally tried to use a meeting room, but all of the reservations were already fully booked.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

      So we ended up studying together at Software Complex on the 2nd floor of SKKU Samsung Library.
    &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&quot;&gt;
&lt;div class=&quot;lang-toggle&quot;&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;div class=&quot;ko&quot;&gt;같이 시험 공부 했습니다&lt;br /&gt;&lt;br /&gt;미팅룸 쓰려고 했는데, 예약이 꽉 차버려서&lt;br /&gt;&lt;br /&gt;디도 2층 솦콤에서 같이 공부했습니다.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;en&quot;&gt;We studied together for our exams.&lt;br /&gt;&lt;br /&gt;We originally tried to use a meeting room, but all of the reservations were already fully booked.&lt;br /&gt;&lt;br /&gt;So we ended up studying together at Software Complex on the 2nd floor of SKKU Samsung Library.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&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;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div id=&quot;code_1781850152195&quot; data-ke-type=&quot;html&quot; data-source=&quot;&amp;lt;div class=&amp;quot;lang-toggle&amp;quot;&amp;gt;
  &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;
    &amp;lt;div class=&amp;quot;ko&amp;quot;&amp;gt;
      마지막은 저희 셋로그입니다. 부끄러움 이슈로 한 명을 제외하고, 3명의 영상을 공개하겠습니다.&amp;lt;br&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;div class=&amp;quot;en&amp;quot;&amp;gt;
      Finally, here is our group vlog. Due to shyness issues, one person will be excluded, and I&amp;rsquo;ll be sharing videos of the remaining three of us.
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&quot;&gt;
&lt;div class=&quot;lang-toggle&quot;&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;div class=&quot;ko&quot;&gt;마지막은 저희 셋로그입니다. 부끄러움 이슈로 한 명을 제외하고, 3명의 영상을 공개하겠습니다.&lt;/div&gt;
&lt;div class=&quot;en&quot;&gt;Finally, here is our group vlog. Due to shyness issues, one person will be excluded, and I&amp;rsquo;ll be sharing videos of the remaining three of us.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock floatLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;914&quot; data-origin-height=&quot;1599&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/La1o2/dJMcagZ0xfK/J9OhbuhUuaDxyE0g4oBk91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/La1o2/dJMcagZ0xfK/J9OhbuhUuaDxyE0g4oBk91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/La1o2/dJMcagZ0xfK/J9OhbuhUuaDxyE0g4oBk91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLa1o2%2FdJMcagZ0xfK%2FJ9OhbuhUuaDxyE0g4oBk91%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;286&quot; height=&quot;500&quot; data-origin-width=&quot;914&quot; data-origin-height=&quot;1599&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&gt;&lt;figure class=&quot;imageblock floatRight&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;899&quot; data-origin-height=&quot;1597&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YBUWD/dJMcagscYt1/4j3g6gy41LoKUZBxOIQ7FK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YBUWD/dJMcagscYt1/4j3g6gy41LoKUZBxOIQ7FK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YBUWD/dJMcagscYt1/4j3g6gy41LoKUZBxOIQ7FK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYBUWD%2FdJMcagscYt1%2F4j3g6gy41LoKUZBxOIQ7FK%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;292&quot; height=&quot;1597&quot; data-origin-width=&quot;899&quot; data-origin-height=&quot;1597&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;div id=&quot;code_1781850169111&quot; data-ke-type=&quot;html&quot; data-source=&quot;&amp;lt;div class=&amp;quot;lang-toggle&amp;quot;&amp;gt;
  &amp;lt;div class=&amp;quot;ko&amp;quot;&amp;gt;
    비슷하게 일어났는데
  &amp;lt;/div&amp;gt;

  &amp;lt;div class=&amp;quot;en&amp;quot;&amp;gt;
    I woke up around the same time.
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&quot;&gt;
&lt;div class=&quot;lang-toggle&quot;&gt;
&lt;div class=&quot;ko&quot;&gt;비슷하게 일어났는데&lt;/div&gt;
&lt;div class=&quot;en&quot;&gt;I woke up around the same time.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&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;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;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;div id=&quot;code_1781850199711&quot; data-ke-type=&quot;html&quot; data-source=&quot;&amp;lt;div class=&amp;quot;lang-toggle&amp;quot;&amp;gt;
  &amp;lt;div style=&amp;quot;text-align: right;&amp;quot;&amp;gt;
    &amp;lt;div class=&amp;quot;ko&amp;quot;&amp;gt;
      쉬는 날이라고 시험 1주일 전에 8시까지 게임을 하는 한 명이 인상적이네요^^&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

      (거의 다 잡았다고 했는데, 11시까지 한 건 비밀임미다)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

      o((&amp;gt;&amp;omega;&amp;lt; ))o
    &amp;lt;/div&amp;gt;

    &amp;lt;div class=&amp;quot;en&amp;quot;&amp;gt;
      One person was particularly impressive&amp;mdash;playing games until 8 a.m. just one week before exams because it was a &amp;ldquo;day off&amp;rdquo; ^^&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

      (He said he almost finished everything, but the fact that it went on until 11 a.m. is a secret.)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

      o((&amp;gt;&amp;omega;&amp;lt; ))o
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&quot;&gt;
&lt;div class=&quot;lang-toggle&quot;&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;div class=&quot;ko&quot;&gt;쉬는 날이라고 시험 1주일 전에 8시까지 게임을 하는 한 명이 인상적이네요^^&lt;br /&gt;&lt;br /&gt;(거의 다 잡았다고 했는데, 11시까지 한 건 비밀임미다)&lt;br /&gt;&lt;br /&gt;o((&amp;gt;&amp;omega;&amp;lt; ))o&lt;/div&gt;
&lt;div class=&quot;en&quot;&gt;One person was particularly impressive&amp;mdash;playing games until 8 a.m. just one week before exams because it was a &amp;ldquo;day off&amp;rdquo; ^^&lt;br /&gt;&lt;br /&gt;(He said he almost finished everything, but the fact that it went on until 11 a.m. is a secret.)&lt;br /&gt;&lt;br /&gt;o((&amp;gt;&amp;omega;&amp;lt; ))o&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/Ff0vh/dJMcagscVLw/gkgVwLVmyUW34cJDQ4k1zk/GBP_8.mp4?attach=1&amp;amp;knm=tfile.mp4&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;GBP_8.mp4&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;9.43MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;끝(Done!)&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;div id=&quot;code_1781850219521&quot; data-ke-type=&quot;html&quot; data-source=&quot;&amp;lt;div class=&amp;quot;lang-toggle&amp;quot;&amp;gt;
  &amp;lt;div class=&amp;quot;ko&amp;quot;&amp;gt;
    외국인들과 함께 이런 경험을 할 것이라고는 생각해본 적이 없었는데, 다들 친절하고 열심히 하는 열정을 볼 수 있었습니다.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

    뜻깊은 시간이었고, 다음에도 이런 기회가 있다면 꼭 참여해보고 싶네요
  &amp;lt;/div&amp;gt;

  &amp;lt;div class=&amp;quot;en&amp;quot;&amp;gt;
    I had never imagined I would get to have an experience like this with international students, but everyone was kind and showed a lot of enthusiasm.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

    It was a truly meaningful time, and if I get another chance like this in the future, I&amp;rsquo;d definitely love to take part again.
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&quot;&gt;
&lt;div class=&quot;lang-toggle&quot;&gt;
&lt;div class=&quot;ko&quot;&gt;외국인들과 함께 이런 경험을 할 것이라고는 생각해본 적이 없었는데, 다들 친절하고 열심히 하는 열정을 볼 수 있었습니다.&lt;br /&gt;&lt;br /&gt;뜻깊은 시간이었고, 다음에도 이런 기회가 있다면 꼭 참여해보고 싶네요&lt;/div&gt;
&lt;div class=&quot;en&quot;&gt;I had never imagined I would get to have an experience like this with international students, but everyone was kind and showed a lot of enthusiasm.&lt;br /&gt;&lt;br /&gt;It was a truly meaningful time, and if I get another chance like this in the future, I&amp;rsquo;d definitely love to take part again.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&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 style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Asiye:&lt;/b&gt; It was a good experience to meet new people from the department, share each others experiences and study together. Thank you to the department of software!&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Enkhmaa:&lt;/b&gt; Thank&amp;nbsp;you&amp;nbsp;to&amp;nbsp;my&amp;nbsp;global&amp;nbsp;buddies&amp;nbsp;who&amp;nbsp;added&amp;nbsp;a&amp;nbsp;shine&amp;nbsp;to&amp;nbsp;my&amp;nbsp;day!!&lt;/p&gt;</description>
      <author>ab0utcom</author>
      <guid isPermaLink="true">https://ab0utcom.tistory.com/50</guid>
      <comments>https://ab0utcom.tistory.com/50#entry50comment</comments>
      <pubDate>Thu, 4 Jun 2026 18:12:05 +0900</pubDate>
    </item>
    <item>
      <title>[Computer Systems] Chapter.3_Practice Problem</title>
      <link>https://ab0utcom.tistory.com/49</link>
      <description>&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;※ 레지스터에는 항상 값으로 숫자를 저장한다. 레지스터의 주소 이런건 없다. 64비트인 rax레지스터에는 64개의 이진수를 저장하고, 이를 4개씩 끊어 16진수로 보기 쉽게 표현한다. 이때 예를 들면 %eax에는 0x12345678 이런숫자가 저장돼있다는 거다. 이 숫자는 어느 주소일수도 있고, 값일 수도 있다. 일단 숫자가 저장돼있는 것이다.&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;※ %rsi가 어떤 포인터 변수를 뜻한다고 하자.&lt;/p&gt;
&lt;pre id=&quot;code_1777357280209&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;void Access(long A, long *pA) {
	*pA = A;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1777357363204&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;mov %rdi, (%rsi)&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;%rsi는 레지스터니까 값에 어떤 숫자가 저장된다. 실행 후에 그 숫자열은 변수 A의 주소를 뜻할 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 A가 0xFFFFFFFF($-2^{63}$)이고, 변수 A가 메모리에 저장된 주소가 0xAAAA라면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A를 뜻하는 레지스터 %rdi = 0xFFFFFFFF로 써진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;pA를 뜻하는 레지스터 %rsi = 0xAAAA가 써지고, (%rsi)를 하면 %rsi가 가진 숫자 값을 주소로 간주하고, 그 주소의 값을 가져오기 때문에 0xFFFFFFFF가 써지는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(%rsi) = memory[0xAAAA] = 0xFFFFFFFF&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;즉 레지스터에는 그냥 숫자만 있고, 어셈블리어로 소괄호 ()를 씌워주면, 그 숫자를 주소로 간주해서 Memeory 그 주소의 값을 가져오는 것이다. 그냥 레지스터 Value 자체는 단순 숫자열이기 때문에 주소로서 의미를 가지는지, 값으로서 의미를 가지는지는 모른다.&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;793&quot; data-origin-height=&quot;663&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cf2cid/dJMcahRKanL/HNt7v09DFhPiZsAiJLxdX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cf2cid/dJMcahRKanL/HNt7v09DFhPiZsAiJLxdX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cf2cid/dJMcahRKanL/HNt7v09DFhPiZsAiJLxdX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcf2cid%2FdJMcahRKanL%2FHNt7v09DFhPiZsAiJLxdX0%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;506&quot; height=&quot;423&quot; data-origin-width=&quot;793&quot; data-origin-height=&quot;663&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Sol)&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;Operand&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;Value&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;%rax&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;0x100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;0x104&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;0xAB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;$0x108&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;0x108&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;(%rax)&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;0xFF&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;4(%rax)&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;0xAB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;9(%rax, %rdx)&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;0x11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;260(%rcx, %rdx)&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;0x13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;0xFC(, %rcx, 4)&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;0xFF&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;(%rax, %rdx, 4)&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;0x11&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. %rax 레지스터는 0x100이 저장돼있다. 즉 %rax의 Value는 0x100이다.&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;2. 0x104는 16진수 104로 생각할 수 있지만, Immediate형은 앞에 $기호를 붙여야 한다. 단순 0x104는 주소를 뜻하는 것이고, 그 주소의 값은 0xAB이다.&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;3. Immediate $0x108은 그 자체로 숫자인 16진수 $108_{16}$이다.&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. (%rax)는 %rax에 저장된 숫자열을 주소로 간주하고, 그 주소에 있는 Value를 가져온다. %rax에 저장된 0x100을 주소로 간주해, 메모리 주소에서 찾아온다 ==&amp;gt; memory[0x100] = 0xFF&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;5. 4(%rax)는 %rax에 저장된 주소가 가르키는((%rax)를 뜻함) 위치에서 4B 뒤에 위치(주소)의 값을 뜻한다. 즉 0x100에서 4bit 뒤인 0x104 주소가 가르키는 값인 0xAB이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다시 말하면 4(%rax)는 %rax가 가진 자체 Value에 4를 더한 숫자를 주소로 간주해, Memory의 그 주소에서 값을 가져온다.&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;6. 9(%rax, %rdx)는 &quot;%rax가 가진 값 + %rdx가 가진 값 + 9&quot;를 주소로 간주하고, Memory에서 해당 값을 가져온다. 즉 (0x100 + 0x3 + 0x9) = (0x10($12_{10}$)) = (0x10C)이고, 0x10C 주소가 가르키는 값인 0x11을 뜻하는 것이다.&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;7. 6번이랑 똑같이 하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(260 + %rcx + %rdx) = (0x104 + 0x1 + 0x3) = ($264_{10}$) = (0x108) = 0x13&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;8. 이것도 똑같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(0xFC + %rcx * 4) = (0xFC + 0x1 * 4) = (0xFC + 0x4) = (0x100) = 0xFF&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;9. (%rax, %rdx, 4) = (0x100 + 0x3 * 4) = (0x100 + 0xC) = (0x10C) = 0x11&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;801&quot; data-origin-height=&quot;346&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLbcuS/dJMcac3XMZl/zNjHixYpGJiL5OsLAHKJP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLbcuS/dJMcac3XMZl/zNjHixYpGJiL5OsLAHKJP0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLbcuS/dJMcac3XMZl/zNjHixYpGJiL5OsLAHKJP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLbcuS%2FdJMcac3XMZl%2FzNjHixYpGJiL5OsLAHKJP0%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;588&quot; height=&quot;254&quot; data-origin-width=&quot;801&quot; data-origin-height=&quot;346&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Sol)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. l&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;2. w&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;3. b&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. b&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;5. q&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;6. w&lt;/p&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;810&quot; data-origin-height=&quot;338&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mvB3N/dJMcajvfQEU/ghtGG6E99IIlNnia5XcaeK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mvB3N/dJMcajvfQEU/ghtGG6E99IIlNnia5XcaeK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mvB3N/dJMcajvfQEU/ghtGG6E99IIlNnia5XcaeK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmvB3N%2FdJMcajvfQEU%2FghtGG6E99IIlNnia5XcaeK%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;568&quot; height=&quot;237&quot; data-origin-width=&quot;810&quot; data-origin-height=&quot;338&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Sol)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. x86-64에서는 주소 계산에 64bit 레지스터만 사용 가능하다. 즉 (%ebx)로 쓰면 안되고 (%rbx)라고 써야 한다.&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;2. movl은 32bit 데이터를 옮기는 건데, %rax는 64bit 레지스터다. %eax로 고치거나, movq로 고쳐야 한다.&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;3. Memory에서 Memory로 직접 데이터 이동은 불가능하다. 반드시 레지스터를 거쳐야 한다&lt;/p&gt;
&lt;pre id=&quot;code_1777360482341&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;movw (%rax), %bx
movw %bx, 4(%rsp)&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;4. %sl이라는 레지스터는 없다. %rsi의 1바이트 범위를 말하는거면 %sil이다.&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;5. Immediate에 값을 넣을 수는 없다. 즉 mov의 dest는 Imm.이 아닌 Reg.나 Mem.만 가능하다.&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;6. 작은 크기의 레지스터 값을 큰 레지스터에 넣을 때는 남은 비트를 어떻게 extension할것인지 명시해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉 signed extension을 하고 싶으면 movslq로 하고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;zero extension을 하고 싶으면 movl을 하고 dest를 %rdx가 아닌 %edx라고 해야 한다.(movzlq는 없다!!)&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;7. %si는 2byte 범위의 레지스터다. 즉 명령어를 movw로 바꾸거나&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;%si가 아닌 %sil이라고 써야 한다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;823&quot; data-origin-height=&quot;314&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uu5r7/dJMcahK0HOb/TIbg592AkObENTPN3lA6C1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uu5r7/dJMcahK0HOb/TIbg592AkObENTPN3lA6C1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uu5r7/dJMcahK0HOb/TIbg592AkObENTPN3lA6C1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fuu5r7%2FdJMcahK0HOb%2FTIbg592AkObENTPN3lA6C1%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;632&quot; height=&quot;241&quot; data-origin-width=&quot;823&quot; data-origin-height=&quot;314&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;599&quot; data-origin-height=&quot;169&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/65Ags/dJMcaiXojcr/83lO3FfP28WwaEVq3MrLgk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/65Ags/dJMcaiXojcr/83lO3FfP28WwaEVq3MrLgk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/65Ags/dJMcaiXojcr/83lO3FfP28WwaEVq3MrLgk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F65Ags%2FdJMcaiXojcr%2F83lO3FfP28WwaEVq3MrLgk%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;497&quot; height=&quot;140&quot; data-origin-width=&quot;599&quot; data-origin-height=&quot;169&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;813&quot; data-origin-height=&quot;312&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/boUR6v/dJMcaiXojcG/jLK3KKsIKmKUJuTGzuAKxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/boUR6v/dJMcaiXojcG/jLK3KKsIKmKUJuTGzuAKxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/boUR6v/dJMcaiXojcG/jLK3KKsIKmKUJuTGzuAKxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FboUR6v%2FdJMcaiXojcG%2FjLK3KKsIKmKUJuTGzuAKxK%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;586&quot; height=&quot;225&quot; data-origin-width=&quot;813&quot; data-origin-height=&quot;312&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;Sol)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;※확장이동인 movs, movz의 dest는 항상 Reg.이다. 즉 Mem.에는 한번에 확장하면서 옮길 수 없다.&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;2. char형은 signed고, 더 큰 자료형인 int형에 넣는 과정이므로&lt;/p&gt;
&lt;pre id=&quot;code_1777362325956&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;movsbl (%rdi), %eax
movl %eax, (%rsi)&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;3. 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;4. unsigned char이므로 zero extension&lt;/p&gt;
&lt;pre id=&quot;code_1777362341749&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;movzbq (%rdi), %rax
movq %rax, (%rsi)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한편 아래처럼 쓸 수도 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1777362758844&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;movzbl (%rdi), %eax		// 32비트 연산의 특성으로 상위 4B가 자동으로 0이 됨
movq %rax, (%rsi)		// 이미 0으로 채워진 %rax 전체를 저장&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;5. int에서 더 작은 char로 이동하는 과정은 알아서 truncated된다.&lt;/p&gt;
&lt;pre id=&quot;code_1777362426120&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;movl (%rdi), %eax
movb %al, (%rsi)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 첫번째 줄에서 &quot;movb (%rdi), %al&quot;로 대신 쓰면 안되나 생각할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안되는 건 아니고, 결과는 같다. 하지만 여러 이유로 인해 Sol처럼 작성한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;- 1: x86-64는 little endian이라서 0x0000012C를 저장할 때 2C 01 00 00 순서로 저장되고, movb를 하면 2C를 전달한다. 이때 big endian이면 00을 전달한다.&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;- 2: %al만 업데이트하면 나중에 %rax또는 %eax를 읽으려 할 때 cpu내부 최적화된 파이프라인을 방해하여 하드웨어적 비효율이 일어난다.&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;- 3: &quot;movb (%rdi), %al&quot;을 분석할 때 %rdi 주소에 char형 데이터가 있다고 착각할 수 있다.&lt;/i&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;6. 5번과 동일&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;7. signed형인 char형을 더 큰 자료형인 short에 저장하므로 signed extension한다.&lt;/p&gt;
&lt;pre id=&quot;code_1777362503944&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;movsbw (%rdi), %ax
movw %ax, (%rsi)&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;799&quot; data-origin-height=&quot;606&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ExucD/dJMcafNdrOJ/KKgU4A5b4muXrjybvkcAvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ExucD/dJMcafNdrOJ/KKgU4A5b4muXrjybvkcAvK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ExucD/dJMcafNdrOJ/KKgU4A5b4muXrjybvkcAvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FExucD%2FdJMcafNdrOJ%2FKKgU4A5b4muXrjybvkcAvK%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;526&quot; height=&quot;399&quot; data-origin-width=&quot;799&quot; data-origin-height=&quot;606&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;Sol)&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1777363683910&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;void decode1(long *xp, long *yp, long *zp) {
	long temp = *xp;
    *xp = *yp;
    *yp = *zp;
    *zp = temp;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;586&quot; data-origin-height=&quot;229&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dQlLHh/dJMcabD1qNX/LFfZ29g7WTOpRlwPLhwLx1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dQlLHh/dJMcabD1qNX/LFfZ29g7WTOpRlwPLhwLx1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dQlLHh/dJMcabD1qNX/LFfZ29g7WTOpRlwPLhwLx1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdQlLHh%2FdJMcabD1qNX%2FLFfZ29g7WTOpRlwPLhwLx1%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;586&quot; height=&quot;229&quot; data-origin-width=&quot;586&quot; data-origin-height=&quot;229&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;592&quot; data-origin-height=&quot;68&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfmAMz/dJMcaaSFhtx/DM1jokJuNyDmGofkZVWzI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfmAMz/dJMcaaSFhtx/DM1jokJuNyDmGofkZVWzI0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfmAMz/dJMcaaSFhtx/DM1jokJuNyDmGofkZVWzI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfmAMz%2FdJMcaaSFhtx%2FDM1jokJuNyDmGofkZVWzI0%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;592&quot; height=&quot;68&quot; data-origin-width=&quot;592&quot; data-origin-height=&quot;68&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;Sol)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. q+9&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;2. q+p&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;3. q+3p&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. 2+p+7q&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;5. 0xE + 3q&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;6. 6+p+7q&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;i&gt;※ 뭘 의도한 문제인지는 알겠는데, 저 어셈블리어는 오류다. Scale자리에 3, 7이 올 수 없다. 오직 1, 2, 4, 8, ... 인 2ⁿ꼴만 올 수 있다.&lt;/i&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;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;615&quot; data-origin-height=&quot;407&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/U9da9/dJMcabjKyeb/hou16SQB533cPO9oPVC5j1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/U9da9/dJMcabjKyeb/hou16SQB533cPO9oPVC5j1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/U9da9/dJMcabjKyeb/hou16SQB533cPO9oPVC5j1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FU9da9%2FdJMcabjKyeb%2Fhou16SQB533cPO9oPVC5j1%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;615&quot; height=&quot;407&quot; data-origin-width=&quot;615&quot; data-origin-height=&quot;407&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것도 마찬가지다. 첫번째 줄은 어찌어찌 10y라고 해도, 세번째 줄에서 세번째 요소를 scale로 쓰는건지가 헷갈려서 그냥 풀지 않았다&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;599&quot; data-origin-height=&quot;451&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JANFH/dJMcahqIyuH/EcNekyeVhg7Wxnk5JPnbD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JANFH/dJMcahqIyuH/EcNekyeVhg7Wxnk5JPnbD1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JANFH/dJMcahqIyuH/EcNekyeVhg7Wxnk5JPnbD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJANFH%2FdJMcahqIyuH%2FEcNekyeVhg7Wxnk5JPnbD1%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;599&quot; height=&quot;451&quot; data-origin-width=&quot;599&quot; data-origin-height=&quot;451&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Sol)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. (%rax)는 %rax값을 주소로 간주하고, 주소가 가르키는 값에 데이터를 읽는 것이다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;%rax의 Value가 0x100이므로, addq ~~의 dest. = 0x100이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0x100의 Value는 0xFF였는데 여기에 %rcx = 0x1을 더하면 Value = 0x100이다.&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;2. 마찬가지로 dest는 %rax+8 = 0x108을 주소로 가지는 곳이다. dest. = 0x108&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0x108에는 0xAB가 있는데, 여기에서 %rdx = 0x3을 빼면 Value = 0xA8이다&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;3. %rax+%rdx*8 = 0x100 + 0x3 * $8_{10}$ = 0x100 + 0x18 = 0x118이므로 Dest. = 0x118&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0x118의 값인 0x11에 8을 곱해서 저장하므로 Value = 0x88&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. 16(%rax) = *($16_{10}$+%rax) = *(0x110)이다. Dest. = 0x110&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0x110에는 0x13이 있는데 여기에서 incq하면 0x14가 된다.&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;5. %rcx를 decq하면 Dest. = %rcx이고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Value = 0x0이다.&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;6. Dest. = %rax&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Value = 0xFD&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;596&quot; data-origin-height=&quot;555&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dz6QVj/dJMcaf7s57z/AxnTnZKjTsASDd0miydQB1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dz6QVj/dJMcaf7s57z/AxnTnZKjTsASDd0miydQB1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dz6QVj/dJMcaf7s57z/AxnTnZKjTsASDd0miydQB1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdz6QVj%2FdJMcaf7s57z%2FAxnTnZKjTsASDd0miydQB1%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;596&quot; height=&quot;555&quot; data-origin-width=&quot;596&quot; data-origin-height=&quot;555&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Sol)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;salq $4, %rax&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;sarq $4, %ecx&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비트 뺄꺼니까 상위 비트는 안가져오려고 movl을 썼다는 것만 유의하면 된다&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;420&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rzpql/dJMcafNdSsp/bXoffKb1lvvkMdKDehPji0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rzpql/dJMcafNdSsp/bXoffKb1lvvkMdKDehPji0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rzpql/dJMcafNdSsp/bXoffKb1lvvkMdKDehPji0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Frzpql%2FdJMcafNdSsp%2FbXoffKb1lvvkMdKDehPji0%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;648&quot; height=&quot;420&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;420&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;i&gt;오류 투성이다. short형인데 접미사를 w가 아닌 q를 쓰고 있고, movq instruction의 dest로 %rbx가 아닌 %bax로 오타를 냈다.&lt;/i&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;Sol)&lt;/p&gt;
&lt;pre id=&quot;code_1777429548273&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;short arith3(short x, short y, short z)
{
	short p1 = y | z;
	short p2 = p1 &amp;gt;&amp;gt; 9;
	short p3 = ~p2;
	short p4 = p3 - y;
	return p4;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;답지에 p4 = y-p3라고 써있는데, 오류로 판단된다.&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;751&quot; data-origin-height=&quot;381&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQb9nR/dJMcagk0YI1/nyVOP8JNka0Jt7kPIq3HXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQb9nR/dJMcagk0YI1/nyVOP8JNka0Jt7kPIq3HXK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQb9nR/dJMcagk0YI1/nyVOP8JNka0Jt7kPIq3HXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQb9nR%2FdJMcagk0YI1%2FnyVOP8JNka0Jt7kPIq3HXK%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;751&quot; height=&quot;381&quot; data-origin-width=&quot;751&quot; data-origin-height=&quot;381&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Sol)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A. %rcx 레지스터를 전부 0으로 바꿔준다.&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. movq $0, %rcx로 대체할 수 있다. (movl $0, %ecx도 된다. 이게 더 빠르기도 하다)&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;C. 명령어 바이트 수는 안배웠는데, xorq %rcx, %rcx는 3B고, movq $0, %rcx는 7B이상이라고 한다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;742&quot; data-origin-height=&quot;350&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Fvi4u/dJMcaad3WFQ/DO4oeasBX5WTUf193TLYkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Fvi4u/dJMcaad3WFQ/DO4oeasBX5WTUf193TLYkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Fvi4u/dJMcaad3WFQ/DO4oeasBX5WTUf193TLYkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFvi4u%2FdJMcaad3WFQ%2FDO4oeasBX5WTUf193TLYkK%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;742&quot; height=&quot;350&quot; data-origin-width=&quot;742&quot; data-origin-height=&quot;350&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Sol)&lt;/p&gt;
&lt;pre id=&quot;code_1777443054193&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;uremdiv:
	movq %rdx, %r8
    movq %rdi, %rax
    xorl %edx, %edx
    divq %rsi
    movq %rax, (%r8)
    movq %rdx, (%rcx)
    ret&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;uremdiv는 remdiv와 다르게 %rax의 부호대호 확장하는 cqto가 필요없고, 그냥 %rdx를 0으로 채워주면 된다. 앞 연습문제에서 배운대로 %rdx를 0으로 채워야 하는데, 이 레지스터를 써야 하므로 저장된 unsigned long *xp 정보를 %r8에 복사하고 작업한다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;742&quot; data-origin-height=&quot;517&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cMigUk/dJMcacJJfwd/lx839cJswznNZFS39GZQW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cMigUk/dJMcacJJfwd/lx839cJswznNZFS39GZQW1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cMigUk/dJMcacJJfwd/lx839cJswznNZFS39GZQW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcMigUk%2FdJMcacJJfwd%2Flx839cJswznNZFS39GZQW1%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;564&quot; height=&quot;393&quot; data-origin-width=&quot;742&quot; data-origin-height=&quot;517&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;727&quot; data-origin-height=&quot;127&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/B9rXC/dJMcaaZphTb/MP219OPhYVs4ZmICbfLDlK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/B9rXC/dJMcaaZphTb/MP219OPhYVs4ZmICbfLDlK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/B9rXC/dJMcaaZphTb/MP219OPhYVs4ZmICbfLDlK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FB9rXC%2FdJMcaaZphTb%2FMP219OPhYVs4ZmICbfLDlK%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;549&quot; height=&quot;96&quot; data-origin-width=&quot;727&quot; data-origin-height=&quot;127&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;i&gt;일단 문제에서 a가 %rdx에 있다고 하는데, %rdi에 있음이 맞아보인다.&lt;/i&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;Sol)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A. data_t : int&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;COMP : &amp;lt;&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. data_t : short&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;COMP : &amp;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;C. data_t : unsigned char&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;COMP : &amp;lt;=&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;D. data_t : long, unsigned long, ptr&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;COMP : !=&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;731&quot; data-origin-height=&quot;626&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KcTy0/dJMcaad30zk/pzq9EXJ5wy9Y0cYN7HRAgk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KcTy0/dJMcaad30zk/pzq9EXJ5wy9Y0cYN7HRAgk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KcTy0/dJMcaad30zk/pzq9EXJ5wy9Y0cYN7HRAgk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKcTy0%2FdJMcaad30zk%2Fpzq9EXJ5wy9Y0cYN7HRAgk%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;600&quot; height=&quot;514&quot; data-origin-width=&quot;731&quot; data-origin-height=&quot;626&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Sol)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A. data_t : long&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TEST : &amp;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;B. data_t : short, unsigned short&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TEST : ==&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;C. data_t : unsigned char&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TEST : &amp;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;D. data_t : int&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TEST : &amp;lt;=&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;995&quot; data-origin-height=&quot;867&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wGupG/dJMcacJJjiW/S4n53bitW5YZoq5Ppjl6o0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wGupG/dJMcacJJjiW/S4n53bitW5YZoq5Ppjl6o0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wGupG/dJMcacJJjiW/S4n53bitW5YZoq5Ppjl6o0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwGupG%2FdJMcacJJjiW%2FS4n53bitW5YZoq5Ppjl6o0%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;626&quot; height=&quot;545&quot; data-origin-width=&quot;995&quot; data-origin-height=&quot;867&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Sol)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A. 4003fc&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.&amp;nbsp;&lt;/p&gt;</description>
      <category>Computer Systems</category>
      <author>ab0utcom</author>
      <guid isPermaLink="true">https://ab0utcom.tistory.com/49</guid>
      <comments>https://ab0utcom.tistory.com/49#entry49comment</comments>
      <pubDate>Tue, 28 Apr 2026 15:37:28 +0900</pubDate>
    </item>
    <item>
      <title>[Computer Systems] Chapter.2_Homework problems</title>
      <link>https://ab0utcom.tistory.com/48</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;2.55&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Compile and run the sample code that uses show_bytes (file show-bytes.c) on different machines to which you have access. Determine the byte orderings used by these machines.&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;Sol) show-byte.c는&lt;/p&gt;
&lt;pre id=&quot;code_1775199802536&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

typedef unsigned char *byte_pointer;

void show_bytes(byte_pointer start, size_t len) {
    int i;
    for (i = 0; i &amp;lt; len; i++)
    printf(&quot;%.2x&quot;, start[i]);
    printf(&quot;\n&quot;);
}

void show_int (int x) {
    show_bytes((byte_pointer) &amp;amp;x, sizeof(int));
}&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;간단한&lt;/p&gt;
&lt;pre id=&quot;code_1775199826238&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int main()
{
    test_show_bytes(12345);			// 39300000
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;main을 통해 실행해보면 39300000이 나온다.&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;12345는 16진수로 0x0000003039이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 출력 결과가 39 30 00 00 (편의를 위해 띄어쓰자)이므로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내 실행 환경은 little endian으로 작동함을 알 수 있다.&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;2.57&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Write procedures show_short, show_long, and show_double that print the byte representations of C objects of types short, long, and double, respectively. Try these out on several machines.&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;Sol)&lt;/p&gt;
&lt;pre id=&quot;code_1775200719588&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;void show_short(short x) {
    show_bytes((byte_pointer) &amp;amp;x, sizeof(short));
}

void show_long(long x) {
    show_bytes((byte_pointer) &amp;amp;x, sizeof(long));
}

void show_double(double x) {
    show_bytes((byte_pointer) &amp;amp;x, sizeof(double));
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 다음처럼 함수를 작성해볼 수 있고, 이어서 예시 main을 통해 검증해보면&lt;/p&gt;
&lt;pre id=&quot;code_1775200753041&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int main()
{
    show_short(127);        // 7f00
    show_long(127);         // 7f00000000000000
    show_double(127.0);     // 0000000000c05f40
}&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;short 127은 Bits = $0000 \;0000 \;0111 \;1111_{2}$이므로 $00\;7F_{16}$이고, 이를 little endian으로 표현하니 $7f \; 00$이 나온다.&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;long 127은 Bits = $00\;00\;00\;00\;00\;00\;00\;7F_{16}$이고, little endian으로 표현하면 $7f \;00\;00\;00\;00\;00\;00\;00$이다.&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;double 127.0은 $1.111\;1110\;0000\;... \times 2^{6}$이고, double형의 bias = $2^{11-1}-1 = 1023$이므로 비트 구성은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sign bit = 0&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;exp bit = $6+1023 = 1029_{10} = 10000000101_{2}$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;significand bit = $1111\;1100\;000 ...$이므로&lt;br /&gt;&lt;br /&gt;$127.0_{10} = 0100\;0000\;0101\;1111\;1100\;0000\;..._{2}=40\;5F\;C0\;00\;00\;00\;00\;00_{16}$이므로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;little edian으로 저장되면 $0x00\;00\;00\;00\;00\;c0\;5f\;40$이다.&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;2.58&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Write a procedure is_little_endian that will return 1 when compiled and run on a little-endian machine, and will return 0 when compiled and run on a bigendian machine. This program should run on any machine, regardless of its word size.&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;Sol)&lt;/p&gt;
&lt;pre id=&quot;code_1775203170756&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int is_little() {
    short val = 0x007F;
    unsigned char *p_val = (unsigned char *) &amp;amp;val;
    
    return (p_val[0]==0x7F);     //0x7F00 이면 little, 0x007F이면 big endian
}&lt;/code&gt;&lt;/pre&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;2.59&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Write a C expression that will yield a word consisting of the least significant byte of x and the remaining bytes of y. For operands x = 0x89ABCDEF and y = 0x76543210, this would give 0x765432EF.&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;Sol)&lt;/p&gt;
&lt;pre id=&quot;code_1775203442474&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int main()
{
    unsigned int x = 0x89ABCDEF;
    unsigned int y = 0x76543210;
    
    unsigned int ans = (x&amp;amp;0xFF) | (y&amp;amp;~0xFF);
    printf(&quot;%x&quot;, ans);				// 765432ef
}&lt;/code&gt;&lt;/pre&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;2.60&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Suppose we number the bytes in a w-bit word from 0 (least significant) to w/8 &amp;minus; 1 (most significant). Write code for the following C function, which will return an unsigned value in which byte i of argument x has been replaced by byte b: unsigned replace_byte (unsigned x, int i, unsigned char b);&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Here are some examples showing how the function should work: replace_byte(0x12345678, 2, 0xAB) --&amp;gt; 0x12AB5678 replace_byte(0x12345678, 0, 0xAB) --&amp;gt; 0x123456AB&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;Sol)&lt;/p&gt;
&lt;pre id=&quot;code_1775205146371&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;unsigned replace_byte(unsigned x, int i, unsigned char b) {
    unsigned mask = 0xFF &amp;lt;&amp;lt; (8*i);
    unsigned ans = (x &amp;amp; ~mask) | (b &amp;lt;&amp;lt; (8*i));
    return ans;
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Computer Systems</category>
      <author>ab0utcom</author>
      <guid isPermaLink="true">https://ab0utcom.tistory.com/48</guid>
      <comments>https://ab0utcom.tistory.com/48#entry48comment</comments>
      <pubDate>Fri, 3 Apr 2026 16:48:08 +0900</pubDate>
    </item>
    <item>
      <title>[C++] 프로그래머스 코딩테스 연습_탐욕법_체육복</title>
      <link>https://ab0utcom.tistory.com/46</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;최종코드:&lt;/p&gt;
&lt;pre id=&quot;code_1770954393511&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;set&amp;gt;
#include &amp;lt;algorithm&amp;gt;    // set_difference

using namespace std;

int solution(int n, vector&amp;lt;int&amp;gt; lost, vector&amp;lt;int&amp;gt; reserve) {
    // 중복 제거, 정렬, 탐색 속도 향상을 위해 set으로 변경
    set&amp;lt;int&amp;gt; s_lost(lost.begin(), lost.end());
    set&amp;lt;int&amp;gt; s_reserve(reserve.begin(), reserve.end());
    
    // 각 set에서 중복 제거
    for (auto it=s_reserve.begin(); it!=s_reserve.end(); ) {
        if (s_lost.count(*it)) {
            s_lost.erase(*it);
            it = s_reserve.erase(it);
        }
        else
            ++it;
    }
    
    vector&amp;lt;bool&amp;gt; ablePE(n+2, true);
    for (int i : s_lost)
        ablePE[i] = false;
    
    // 양도 가능한 체육복 수만큼 answer증가
    int answer = n-s_lost.size();
    for (int i : s_reserve) {
        if (ablePE[i-1] == false) {
            ablePE[i-1] = true;
            answer++;
            continue;
        }
        else if (ablePE[i+1] == false) {
            ablePE[i+1] = true;
            answer++;
        }
    }
        
    return answer;
}&lt;/code&gt;&lt;/pre&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;교집합을 빼기 위해 set의 차집합을 이용하려했으나, 생각보다 코드가 안이쁜 관계로 직접 반복자를 이용해 빼줬다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리디답게 reverse를 돌면서 채울 수 있으면 채웠다. 상식적으로 작은 숫자부터 채워야 최대로 채울 수 있을 것 같으니 말이다.&lt;/p&gt;</description>
      <category>C,C++</category>
      <author>ab0utcom</author>
      <guid isPermaLink="true">https://ab0utcom.tistory.com/46</guid>
      <comments>https://ab0utcom.tistory.com/46#entry46comment</comments>
      <pubDate>Fri, 13 Feb 2026 12:48:03 +0900</pubDate>
    </item>
    <item>
      <title>[C++] 프로그래머스 코딩테스트 입문_등수 매기기</title>
      <link>https://ab0utcom.tistory.com/45</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;최종코드:&lt;/p&gt;
&lt;pre id=&quot;code_1770785280810&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;

using namespace std;

struct element {
    int sum;
    int index;
};

// 원하는 comp를 통해 정렬
template &amp;lt;typename T, typename Compare&amp;gt;
void Qsort(vector&amp;lt;T&amp;gt;&amp;amp; arr, int start, int end, Compare comp) {
    if (start &amp;gt;= end) return;
    
    T pivot = arr[(start+end)/2];
    
    int l = start, r = end;
    while (l &amp;lt;= r) {
        while (l &amp;lt;= end &amp;amp;&amp;amp; comp(arr[l], pivot)) l++;
        while (r &amp;gt;= start &amp;amp;&amp;amp; comp(pivot, arr[r])) r--;

        if (l &amp;lt;= r) {
            swap(arr[l], arr[r]);
            l++; r--;
        }
    }

    if (start &amp;lt; r) Qsort(arr, start, r, comp);
    if (l &amp;lt; end) Qsort(arr, l, end, comp);
}

// 자연수 원소만 가지는 내림차순 벡터의 순위 매기는 함수
vector&amp;lt;int&amp;gt; ranker(const vector&amp;lt;element&amp;gt;&amp;amp; arr) {
    if (arr.empty()) return {};
    
    vector&amp;lt;int&amp;gt; ranks;
    ranks.reserve(arr.size());
    
    int current_rank = 1;
    for (int i = 0; i &amp;lt; arr.size(); ++i) {
        // 이전 원소와 값이 다를 때만 현재 인덱스 기반으로 순위 갱신
        if (i &amp;gt; 0 &amp;amp;&amp;amp; arr[i].sum != arr[i - 1].sum) {
            current_rank = i + 1;
        }
        ranks.emplace_back(current_rank);
    }
    return ranks;
}

vector&amp;lt;int&amp;gt; solution(vector&amp;lt;vector&amp;lt;int&amp;gt;&amp;gt; score) {
    vector&amp;lt;int&amp;gt; answer(score.size());
    
    vector&amp;lt;element&amp;gt; rankedElements;
    for (int i=0; i&amp;lt;score.size(); i++) {
        rankedElements.emplace_back( element{score[i][0]+score[i][1], i+1} );
    }
    
    // 성적의 합 기준 내림차순 정렬
    Qsort(rankedElements, 0, rankedElements.size()-1, [](const element&amp;amp; a, const element&amp;amp; b) {
        return a.sum &amp;gt; b.sum;
    });
    
    vector&amp;lt;int&amp;gt; computedRanks = ranker(rankedElements);
    
    for (int i=0; i&amp;lt;rankedElements.size(); i++) {
        answer[rankedElements[i].index-1] = computedRanks[i];
    }
    
    return answer;
}&lt;/code&gt;&lt;/pre&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;element형 벡터를 element.sum을 기준으로 정렬하는 퀵정렬을 구현했다.&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;le; 100이므로 합해도 int형 범위이기 때문에&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;정렬된 배열 [200, 190, 190, 150, 150, 70, 40]의 순위 [1, 2, 2, 4, 4, 6, 7]를 매겨주는 함수 ranker를 통해 답을 구했다.&lt;/p&gt;</description>
      <category>C,C++</category>
      <author>ab0utcom</author>
      <guid isPermaLink="true">https://ab0utcom.tistory.com/45</guid>
      <comments>https://ab0utcom.tistory.com/45#entry45comment</comments>
      <pubDate>Wed, 11 Feb 2026 13:50:56 +0900</pubDate>
    </item>
    <item>
      <title>[C++] 프로그래머스 코딩테스트 입문_문자열 밀기</title>
      <link>https://ab0utcom.tistory.com/44</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;최종코드:&lt;/p&gt;
&lt;pre id=&quot;code_1770709236780&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;

using namespace std;

// 오른쪽으로 n번 밀린 문자열 구하기
string pushString(string msg, int n) {
    if (msg.empty()) return msg;
    if (n==0) return msg;
    
    int L = msg.size();
    n %= L;     // n&amp;gt;L인 경우 방어
    
    string front = msg.substr(0, L-n);
    string back = msg.substr(L-n);
    return back + front;
}

int solution(string A, string B) {
    int answer = -1;
    
    for (int i=0; i&amp;lt;A.size(); i++) {
        // A의 첫문자가 발견되는 위치에서만 확인
        if (A.front() != B[i]) continue;
        
        // 발견했을 때 : 밀어야 하는 수 리턴
        if (pushString(A, i) == B) return i;
    }
    // 발견 못했을 때
    return -1;
}&lt;/code&gt;&lt;/pre&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;for문을 돌면서 그때그때 밀어보고 확인하기보다는, 그러한 후보들 중에서만 작동하는 것으로 성능을 높였다.&lt;/p&gt;</description>
      <category>C,C++</category>
      <author>ab0utcom</author>
      <guid isPermaLink="true">https://ab0utcom.tistory.com/44</guid>
      <comments>https://ab0utcom.tistory.com/44#entry44comment</comments>
      <pubDate>Tue, 10 Feb 2026 16:41:22 +0900</pubDate>
    </item>
    <item>
      <title>[C++] 프로그래머스 코딩테스트 입문_다항식 더하기</title>
      <link>https://ab0utcom.tistory.com/43</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;최종 코드:&lt;/p&gt;
&lt;pre id=&quot;code_1770704031526&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;sstream&amp;gt;

using namespace std;

// 항의 계수를 리턴하는 함수(상수형이면 그대로)
int returnCoef(string term) {
    if (term.back() == 'x') {
        if (term == &quot;x&quot;)
            return 1;
        return stoi(term.substr(0, term.size()-1));
    }
    return stoi(term);
}

string solution(string polynomial) {
    istringstream iss(polynomial);
    
    // 문자열에서 항을 파싱
    vector&amp;lt;string&amp;gt; terms;
    string term;
    while (iss &amp;gt;&amp;gt; term) {
        if (term == &quot;+&quot;) continue;        
        terms.emplace_back(term);
    }
    
    int coef_X = 0;
    int constant = 0;
    
    // 각 차수별 항의 계수 구하기
    for (string term : terms) {
        if (term.back()=='x')
            coef_X += returnCoef(term);
        else
            constant += returnCoef(term);
    }
    
    ostringstream oss;
    // 1차항 처리
    if (coef_X != 0) {
        if (coef_X != 1)            // 계수 1이면 생략
            oss &amp;lt;&amp;lt; coef_X &amp;lt;&amp;lt; &quot;x&quot;;
        else
            oss &amp;lt;&amp;lt; &quot;x&quot;;
    }
    
    // 상수항 처리
    if (constant != 0) {
        if (coef_X != 0)            // 1차항이 있을 때만 앞에 '+' 추가
            oss &amp;lt;&amp;lt; &quot; + &quot;;
        oss &amp;lt;&amp;lt; constant;
    }
    
    return oss.str();
}&lt;/code&gt;&lt;/pre&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;sstream으로 파싱하는 게 역시 좋은 것 같다. 편해 아주&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;혹시나 모든 항이 0이면 결과는 &quot;0&quot;이 되어야 할 것이다. 하지만 문제 조건에 모든 수는 양수이고 +만 기호만 있다고 명시하고 있으므로 처리하지 않았다.&lt;/p&gt;</description>
      <category>C,C++</category>
      <author>ab0utcom</author>
      <guid isPermaLink="true">https://ab0utcom.tistory.com/43</guid>
      <comments>https://ab0utcom.tistory.com/43#entry43comment</comments>
      <pubDate>Tue, 10 Feb 2026 15:14:52 +0900</pubDate>
    </item>
    <item>
      <title>[C++] 프로그래머스 코딩테스트 입문_특이한 정렬</title>
      <link>https://ab0utcom.tistory.com/42</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;최종코드:&lt;/p&gt;
&lt;pre id=&quot;code_1770701764224&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;algorithm&amp;gt;

using namespace std;

vector&amp;lt;int&amp;gt; solution(vector&amp;lt;int&amp;gt; numlist, int n) {
    sort(numlist.begin(), numlist.end(), [n](int a, int b) {
        int squareA = (a-n)*(a-n);
        int squareB = (b-n)*(b-n);
        
        if (squareA != squareB)
            return squareA &amp;lt; squareB;      // 1순위: 차이 제곱 오름차순
        return a &amp;gt; b;                      // 2순위: 차이가 양수인(기준보다 큰) 수가 앞
    });
    
    return numlist;
}&lt;/code&gt;&lt;/pre&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;/p&gt;
&lt;pre id=&quot;code_1770701335217&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;algorithm&amp;gt;

struct element {
    int gap;
    int square;
    int value;
};

using namespace std;

vector&amp;lt;int&amp;gt; solution(vector&amp;lt;int&amp;gt; numlist, int n) {
    vector&amp;lt;int&amp;gt; answer;
    
    // gap_arr라는 struct 배열에 기준 n과의 차이, 차이&amp;sup2;, 원래 값을 묶어서 추가
    vector&amp;lt;element&amp;gt; gap_arr;
    for (int i : numlist) {
        int diff = i - n;
        gap_arr.push_back({diff, diff * diff, i});
    }
    
    // element배열을 gap&amp;sup2; 오름차순으로 정렬(만약 같으면 gap&amp;gt;0인 element부터)
    sort(gap_arr.begin(), gap_arr.end(), [](const element&amp;amp; a, const element&amp;amp; b) {
        if (a.square != b.square)
            return a.square &amp;lt; b.square;
        
        return a.value &amp;gt; b.value;
    });
    
    // element 순서대로 value를 모으기
    for (const element&amp;amp; e : gap_arr) {
        answer.push_back(e.value);
    }
    
    
    return answer;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;gap의 절대값을 기준으로 정렬해야 하는데, 사실 제곱해도 결과는 같으니 제곱으로 구현했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 구현하고나니 struct에 제곱을 저장하지 말고, 그냥 sort 내에서 제곱끼리 비교하는 게 낫지 않나 생각했고, 그냥 저장하지말고 아싸리 한번에 구현하는 것으로 향상시켰다.&lt;/p&gt;</description>
      <category>C,C++</category>
      <author>ab0utcom</author>
      <guid isPermaLink="true">https://ab0utcom.tistory.com/42</guid>
      <comments>https://ab0utcom.tistory.com/42#entry42comment</comments>
      <pubDate>Tue, 10 Feb 2026 14:36:24 +0900</pubDate>
    </item>
  </channel>
</rss>