<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>43218902 님의 블로그</title>
    <link>https://43218902.tistory.com/</link>
    <description>43218902 님의 블로그 입니다.</description>
    <language>ko</language>
    <pubDate>Sat, 24 Oct 2026 05:22:45 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>43218902</managingEditor>
    <item>
      <title>플레이어 FSM하위버전 코드</title>
      <link>https://43218902.tistory.com/13</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;솔리드 원칙을 지키며 코드를 짜려고하다보니 일단 플레이어의 기능을 분리하며 코드를 짰습니다&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 플레이어란 스크립트를 이용하여 플레이어에 붙여질 PlayerDash나 PlayerAttack,Anim등등 곧 나눠질 스크립트들을 관리를 하려했습니다 이걸 솔리드에 단일책임 원칙(S)라고 하는데 먼저 이것을 기점으로 코드를 작성해보았습니다&lt;/p&gt;
&lt;div style=&quot;background-color: #191a1c; color: #d0d0d0;&quot;&gt;
&lt;pre class=&quot;arduino&quot;&gt;&lt;code&gt;using System;
using _011.Scripts.Player;
using UnityEngine;

public class Player : MonoBehaviour
{
   public PlayerAnimation AnimCompo { get; private set; }
   public PlayerInput InputCompo { get; private set ; }
   public PlayerRenderer RenderCompo { get; private set ; }
   public PlayerMovement MoveCompo { get; private set ; }
   public PlayerAttack AttackCompo { get; private set ; }
   public PlayerHP HpCompo { get; private set ; }
   public PlayerDash DashCompo { get; private set ; }
   private bool _isAttacking;
   private bool _isDashing;
   private bool CanMove =&amp;gt; !_isAttacking &amp;amp;&amp;amp; !_isDashing;
   
   
   private void Awake()
   {
      AnimCompo = GetComponentInChildren&amp;lt;PlayerAnimation&amp;gt;();
      RenderCompo = GetComponentInChildren&amp;lt;PlayerRenderer&amp;gt;();
      MoveCompo = GetComponent&amp;lt;PlayerMovement&amp;gt;();
      InputCompo = GetComponent&amp;lt;PlayerInput&amp;gt;();
      AttackCompo = GetComponentInChildren&amp;lt;PlayerAttack&amp;gt;();
      HpCompo = GetComponent&amp;lt;PlayerHP&amp;gt;();
      DashCompo= GetComponent&amp;lt;PlayerDash&amp;gt;();
      
   }

   private void OnEnable()
   {
      HpCompo.OnDead += HandleDie;
      
      InputCompo.OnAttackPressed += HandleAttackedPressed;
      InputCompo.OnDashPressed += HandleDashPressed;
      
      AttackCompo.OnHit += HandleHitAttacked;
      AttackCompo.OnAttacked += HandleAttacked;
      
      AnimCompo.OnAttackFinish += HandleAttackEnd;
      
      DashCompo.OnDash +=  HandleOnDash;
      DashCompo.OnDashCoolFinish += HandleDashFinished;
   }

   private void OnDisable()
   {
      HpCompo.OnDead -= HandleDie;

      InputCompo.OnAttackPressed -= HandleAttackedPressed;
      InputCompo.OnDashPressed -= HandleDashPressed;
      
      AttackCompo.OnHit -= HandleHitAttacked;
      AttackCompo.OnAttacked -= HandleAttacked;
      
      AnimCompo.OnAttackFinish -= HandleAttackEnd;
      
      DashCompo.OnDash -=  HandleOnDash;
      DashCompo.OnDashCoolFinish -= HandleDashFinished;
   }

   private void HandleDashPressed()
   {
      if(!CanMove || InputCompo.Dir == Vector2.zero|| DashCompo.CanDash == false) return;
      DashCompo.Dash(MoveCompo.RbCompo,InputCompo.Dir);
   }
   private void HandleOnDash()
   {
      _isDashing = true;
      MoveCompo.IsControl(false);
   }
   private void HandleDashFinished()
   {
      _isDashing = false;
      MoveCompo.IsControl(true);
   }

   private void HandleAttackedPressed()
   {
      if(!CanMove) return;
      AttackCompo.AttackPressed();
   }

   private void HandleAttacked()
   {
      AnimCompo.PlayAttack();
      _isAttacking = true;
   }
   private void HandleAttackEnd()
   {
      _isAttacking = false;
   }
   

   private void HandleHitAttacked(bool isHit)
   {
      RenderCompo.ChangeColor(isHit?Mode.PlayerAngry:Mode.PlayerSmile);
   }
  

   private void HandleDie()
   {
      Destroy(gameObject);
   }
   private void Update()
   {
      MoveCompo.MoveSet(CanMove?InputCompo.Dir:Vector2.zero);
      AnimCompo.AnimMovePlay(MoveCompo.RbCompo.linearVelocity);
   }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: #191a1c; color: #d0d0d0;&quot;&gt;
&lt;pre class=&quot;cs&quot;&gt;&lt;code&gt;using System;
using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
  public Rigidbody2D RbCompo{get; private set;}
  private Vector2 dir;
  [SerializeField]private float speed;
  private bool _isControl = true;
  public void IsControl(bool can) =&amp;gt; _isControl = can;

  private void Awake()
  {
    RbCompo = GetComponent&amp;lt;Rigidbody2D&amp;gt;();
  }

  public void MoveSet(Vector2 direction)
  {
    dir = direction;
  }

  private void FixedUpdate()
  {
    if (_isControl)
    {
      RbCompo.linearVelocity = dir * speed;
    }
  }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: #191a1c; color: #d0d0d0;&quot;&gt;
&lt;pre class=&quot;arduino&quot;&gt;&lt;code&gt;using System;
using System.Collections;
using UnityEngine;

namespace _011.Scripts.Player
{
    public class PlayerDash : MonoBehaviour
    {
        [SerializeField] private float power = 30f;
        [SerializeField] private float cooltime = 1.5f;
        [SerializeField] private float duration = 0.2f;
        private Vector2 playerDir;
        public bool CanDash { get; private set; } = true;
      
        public event Action OnDash;
        public event Action OnDashCoolFinish;

        private IEnumerator CoolTime()
        {
            yield return new WaitForSeconds(duration);
            OnDashCoolFinish?.Invoke();
            yield return new WaitForSeconds(cooltime);
            CanDash = true;
        }

        public void Dash(Rigidbody2D rb, Vector2 dir)
        {
            if (CanDash)
            {
                CanDash = false;
                rb.linearVelocity = Vector2.zero;
                rb.AddForce(dir * power, ForceMode2D.Impulse);
                StartCoroutine(CoolTime());
                OnDash?.Invoke();
               
            }
            else
            {
                Debug.Log(&quot;DashCoolTime&quot;);
            }
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: #191a1c; color: #d0d0d0;&quot;&gt;
&lt;pre class=&quot;arduino&quot;&gt;&lt;code&gt;using System;
using UnityEngine;

namespace _011.Scripts.Player
{
    public class PlayerHP : MonoBehaviour,IDamageable
    {
        [SerializeField] private float maxHp;
        public event Action&amp;lt;float, float&amp;gt; OnHpChanged;
        public event Action OnDead;
        public event Action OnDamaged;
        public bool IsDead =&amp;gt; Hp &amp;lt;= 0;

        public float Hp { get; private set; }

        private void Awake()
        {
            Hp = maxHp;
        }

        public void Heal(float amount)
        {
            if(IsDead) return;
            Hp += amount;
            Hp = Mathf.Clamp(Hp, 0, maxHp);
            OnHpChanged?.Invoke(Hp, maxHp);
        }

        public void Damage(float damage)
        {
            if(IsDead) return;
            Hp -= damage;
            Hp = Mathf.Clamp(Hp, 0, maxHp);
            OnDamaged?.Invoke();
            OnHpChanged?.Invoke(Hp, maxHp);
            if (IsDead) OnDead?.Invoke();
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: #191a1c; color: #d0d0d0;&quot;&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;using System;
using System.Collections.Generic;
using UnityEngine;

namespace _011.Scripts.Player
{
    public class PlayerRenderer : MonoBehaviour
    {
      public SpriteRenderer Render { get; private set; }
      private Dictionary&amp;lt;Mode, Color&amp;gt; PlayerColorDict;

      private void Awake()
      {
          PlayerColorDict = new Dictionary&amp;lt;Mode, Color&amp;gt;();
          Render = GetComponent&amp;lt;SpriteRenderer&amp;gt;();
          AddColor(Mode.PlayerAngry,Color.red);
          AddColor(Mode.PlayerSad,Color.cornflowerBlue);
          AddColor(Mode.PlayerSurprised,Color.softYellow);
          AddColor(Mode.PlayerSmile,Color.green);
      }

      private void AddColor(Mode playerMode, Color color)
      {
          PlayerColorDict.Add(playerMode, color);
      }

      public void ChangeColor(Mode state)
      {
          Render.color = PlayerColorDict[state];
      }
    }

    public enum Mode
    {
        PlayerAngry,
        PlayerSad,
        PlayerSurprised,
        PlayerSmile
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: #191a1c; color: #d0d0d0;&quot;&gt;
&lt;pre class=&quot;arduino&quot;&gt;&lt;code&gt;using System;
using System.Collections;
using UnityEngine;

namespace _011.Scripts.Player
{
    public class PlayerAttack : MonoBehaviour
    {
       [field:SerializeField] public float AttackDmg { get; private set; }
       [SerializeField] private float range;
       [SerializeField] private float attackCool;
       [SerializeField] private LayerMask enemyLayer;
       public Action&amp;lt;bool&amp;gt; OnHit;
       public Action OnAttacked;
       private bool canAttack = true;
       
       

        public void AttackPressed()
        {
            if (!canAttack) return;
            canAttack = false;
            bool hit = false;
            Collider2D[] colliders = OnAreaHasEnemy();
            foreach (var col in colliders)
            {
                    if (col.TryGetComponent&amp;lt;IDamageable&amp;gt;(out IDamageable damageable))
                    {
                        damageable.Damage(AttackDmg);
                        hit = true;
                    }
                    
            } 
            OnAttacked?.Invoke();
            OnHit?.Invoke(hit);
            StartCoroutine(AttackCool());
        }

        private IEnumerator AttackCool()
        {
            yield return new WaitForSeconds(attackCool);
            canAttack = true;
        }

        public Collider2D[] OnAreaHasEnemy()
        {
            return Physics2D.OverlapCircleAll(transform.position, range, enemyLayer);
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: #191a1c; color: #d0d0d0;&quot;&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;public interface IDamageable 
{
    public void Damage(float damage);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: #191a1c; color: #d0d0d0;&quot;&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;using System;
using System.Collections.Generic;
using UnityEngine;

namespace _011.Scripts.Player
{
    public class PlayerAnimation : MonoBehaviour
    {
        public Animator anim;
        public event Action OnAttackFinish;
        
        private readonly int _hashX = Animator.StringToHash(&quot;velocityX&quot;);
        private readonly int _hashY = Animator.StringToHash(&quot;velocityY&quot;);
        private readonly int _hashIsMoving = Animator.StringToHash(&quot;isMoving&quot;);
        private readonly int _hashIsAttacking = Animator.StringToHash(&quot;isAttacking&quot;);
        private void Awake()
        {
            anim = GetComponent&amp;lt;Animator&amp;gt;();
        }

        public void PlayAttack()
        {
            anim.SetTrigger(_hashIsAttacking);
        }

        public void AttackFinish()
        {
            OnAttackFinish?.Invoke();
        }

        

        public void AnimMovePlay(Vector2 velocity)
        {
            bool isMoving = velocity.sqrMagnitude &amp;gt; 0.01f;
            anim.SetBool(_hashIsMoving, isMoving);
            if (isMoving)
            {
                Vector2 nor = velocity.normalized;
                anim.SetFloat(_hashX, nor.x);
                anim.SetFloat(_hashY, nor.y);
            }
           
            
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: #191a1c; color: #d0d0d0;&quot;&gt;
&lt;pre class=&quot;arduino&quot;&gt;&lt;code&gt;using System;
using System.Collections;
using UnityEngine;
using UnityEngine.InputSystem;

namespace _011.Scripts.Player
{
    public class PlayerInput : MonoBehaviour
    {
        public Vector2 Dir { get; private set; }
        public event Action OnAttackPressed;
        public event Action OnDashPressed;
       

        private void Update()
        {
            if (Mouse.current.leftButton.wasPressedThisFrame)
            {
                OnAttackPressed?.Invoke();
            }

            if (Keyboard.current.qKey.wasPressedThisFrame)
            {
                OnDashPressed?.Invoke();
            }
        }
        

        public void OnMove(InputValue input)
        {
            Dir = input.Get&amp;lt;Vector2&amp;gt;();
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;중간에있는 인터페이스는 복습겸 사용했습니다 근데 저는 탑뷰를 생각하며 코드를 짰는데 어택이랑 대쉬는 지금보니 사이드뷰로 짰네요 ㅎ; 어쨋든&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 코드를 짜면서 원했던게 평타를 치는 도중엔 움직이면 이상하니 이때 못움직이게하는것이였고(평타모션이끝날때까지)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 또 대쉬중 움직임이 들어오면 어색하게 움직여지니 이때도 평타금지랑 움직이기 금지를 원했습니다 짜다보니 여러 오류들도 생기고 점점 복잡해져서 AI에게 모르는 부분을 물어보고 어택이랑 대쉬코드랑 무브코드를 좀 수정했던것같습니다 근데 이게 알고보니 FSM이랑 거의 비슷하더라고 저는 학교에서 배운대로 솔리드랑 지키면서 최대한 짜본건데 알고보니 FSM하위버전이였단게 신기했습니다 그리고&amp;nbsp; FSM은 이걸 다 끝내고 공부할려고했는데 딱 FSM이나올때가됐을때 제가 AI에게 많이물어본거더라고요 그냥 신기했습니다 ㅎㅎ 이제 FSM공부하러 갈게요&lt;/p&gt;</description>
      <author>43218902</author>
      <guid isPermaLink="true">https://43218902.tistory.com/13</guid>
      <comments>https://43218902.tistory.com/13#entry13comment</comments>
      <pubDate>Fri, 2 Oct 2026 00:26:02 +0900</pubDate>
    </item>
    <item>
      <title>에네미가 플레이어 따라가기(엔진 기초)</title>
      <link>https://43218902.tistory.com/12</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;763&quot; data-origin-height=&quot;614&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cUgSkm/dJMcaciuspA/m3SEu7sF54rYHwSJKKvt20/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cUgSkm/dJMcaciuspA/m3SEu7sF54rYHwSJKKvt20/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cUgSkm/dJMcaciuspA/m3SEu7sF54rYHwSJKKvt20/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcUgSkm%2FdJMcaciuspA%2Fm3SEu7sF54rYHwSJKKvt20%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;763&quot; height=&quot;614&quot; data-origin-width=&quot;763&quot; data-origin-height=&quot;614&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 몹의 스피드를 지정해주며 인스펙터창에서도 조정가능하게 [SerializeField] 를 써주며 속도는 정수가아닌 소수로 받는다&lt;br /&gt;또한 방향을 지정해주기위해 Vector2 에 movedir로 변수명을 지었으며&lt;br /&gt;PlayerTrm은&amp;nbsp; 에네미가 플레이어 위치를 알아야하니 transform에 PlayerTrm라고 변수명을 지정해줬다&lt;br /&gt;또한 리지드바디로 움직일 꺼여서 리지드 바디라는 변수또한 만들었음&lt;br /&gt;시작하자마자 총 2개의 활동을 에네미는 해야한다&lt;br /&gt;먼저 리지드 _rb에 리지드 바디2D라는 컴포넌트를 얻게 해주며 또한 playerTrm은 게임오브젝트를 찾는다 플레이어의 위치를 라는 코드를 써주며 게임 오브젝트를 찾게해주었으며&lt;br /&gt;다음으로 Fixed Update를 써주며(물리연산으로 움직이며 찾을거여서)&lt;br /&gt;movedir(방향) = 플레이어위치에서 나(에네미)의 위치 빼줘서 가게했으며 또한 노멀라이즈로 정규화를해줬다&amp;nbsp;&lt;br /&gt;마지막으로 리니어 벨로시티를 사용해서 리지드바디를 통한 물리연산으로 움직이게 해줬다&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <author>43218902</author>
      <guid isPermaLink="true">https://43218902.tistory.com/12</guid>
      <comments>https://43218902.tistory.com/12#entry12comment</comments>
      <pubDate>Sat, 18 Apr 2026 09:48:20 +0900</pubDate>
    </item>
    <item>
      <title>리지드바디로 플레이어 움직임(게임 엔진 기초)</title>
      <link>https://43218902.tistory.com/11</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1416&quot; data-origin-height=&quot;670&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b9NRV5/dJMcaiCU49X/uQGUVE6bGtx0WqOP3D8oVK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b9NRV5/dJMcaiCU49X/uQGUVE6bGtx0WqOP3D8oVK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b9NRV5/dJMcaiCU49X/uQGUVE6bGtx0WqOP3D8oVK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9NRV5%2FdJMcaiCU49X%2FuQGUVE6bGtx0WqOP3D8oVK%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;1416&quot; height=&quot;670&quot; data-origin-width=&quot;1416&quot; data-origin-height=&quot;670&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;리지드바디를 넣어줄 변수선언&amp;nbsp;&lt;br /&gt;movedir은 이동방향 변수 선언&lt;br /&gt;&lt;br /&gt;awake에 _rb에 리지드바디2d 컴포넌트를 얻게 해준다&lt;br /&gt;또한 _rb.linearVelocity = _speed *move Dir&amp;nbsp;&lt;br /&gt;을 입력한다 리니어벨로시티는 물리연산이므로 매프레임해야하는 물리연산으로 fixed update에 넣어준다&lt;br /&gt;이코드는&amp;nbsp; 속도x방향을 해줘서 최종속도 지정해줌&lt;br /&gt;또한 public void OnMove(InputValue Value)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;moveDir = Value.Get&amp;lt;Vector2&amp;gt;();&lt;br /&gt;}&lt;br /&gt;이코드는 moveDir이란 변수에 Vector2라는 값을 넣는다는 뜻으로 이렇게 구성되면 플레이어가 리지드바디를 이용해 움직일수있다&lt;/p&gt;</description>
      <author>43218902</author>
      <guid isPermaLink="true">https://43218902.tistory.com/11</guid>
      <comments>https://43218902.tistory.com/11#entry11comment</comments>
      <pubDate>Sat, 11 Apr 2026 22:08:33 +0900</pubDate>
    </item>
    <item>
      <title>쿠키런 킹덤&amp;lt;쉐도우 밀크쿠키 스토리&amp;gt; 요약</title>
      <link>https://43218902.tistory.com/10</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;713&quot; data-origin-height=&quot;425&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOKYrp/dJMcajnZa6H/dZWVzni5OK1BKXAw1N6Vb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOKYrp/dJMcajnZa6H/dZWVzni5OK1BKXAw1N6Vb1/img.png&quot; data-alt=&quot;쉐도우 밀크가 침묵과 자유의 소울젬이 합쳐진 영혼의 일격에 맞아 알수없는 상태가 된 상태&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOKYrp/dJMcajnZa6H/dZWVzni5OK1BKXAw1N6Vb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOKYrp%2FdJMcajnZa6H%2FdZWVzni5OK1BKXAw1N6Vb1%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;713&quot; height=&quot;425&quot; data-origin-width=&quot;713&quot; data-origin-height=&quot;425&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;쉐도우 밀크가 침묵과 자유의 소울젬이 합쳐진 영혼의 일격에 맞아 알수없는 상태가 된 상태&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;쉐도우 밀크 쿠키는 마녀들이 쿠키대륙의 평화를 위해 만든 다섯 영웅 쿠키들중 하나였습니다 늘 자신의 의무인 진리를 위해 여러 쿠키들에게 깨닳음을 주던 쿠키였습니다 하지만 어느날부턴가 마녀와의 연락이 끊켰으며 늘 같은 질문들을 반복하고 오늘 똥 딲을까요?, 똥 딲을땐 뭐로 딲는게 좋나요, 저희들은 왜 태어났나요?, 점점 질문들은 늘어가지만 늘 같은 질문들이고 이 문제에 대해 의논할 마녀들과의 연락도 끊키며 점점 자신의 진리가아닌 거짓을 논하는데 재미를 느끼게 되었습니다 그렇게 점점 타락하던 태초의 영웅 쿠키들은 결국 비스트라는 악마가 되어 쿠키 세계를 어지럽히기 시작했습니다 특히 쉐도우 밀크 쿠키는 진리의 소울잼이 거짓으로 타락하여 모두에게 거짓을 전파했고 그 결과 현 비스트인 사일런트 솔트가 이끄는 기사단에게까지 피해가 가 결국 사일런트 솔트까지 침묵의 악마 비스트가되게 만들었습니다 하지만 어느날 하늘에서 은포크가 날라와 봉인수를 기준으로 5명의 비스트 쿠키들을 묶어 육체를 부시고 영혼만을 가둬 봉인시켰습니다 그래서 그 비스트 쿠키들의 소울잼은 다른 이들에게 넘어가 새로운 진리와 자유 풍요 결의 열정으로 다시한번 쿠키세계의 질서를 찾는줄 알았지만 세인트릴리라는 쿠키이자 현 어둠마녀였던 2번째 영웅쿠키가 우연히 1000년에 한번 열리는 마녀들의 연회에서 마녀들이 쿠키를 먹는걸 보았으며 그렇게 도망갈려할때 궁극의 반죽에빠져 흑화했으며 거기있던 마녀들을 싹다 죽이고 쿠키세계의 새로운 세상을 위해 잘못된방식으로 다시만들려 준비하기 시작했으며 자신이 다시한번 봉인했던 봉인수를 어둠마녀가 된 세인트릴리 쿠키는 봉인을 풀어버리고 육체를 주며 다시한번 비스트들이 세상 밖으로 나오게 했습니다 그렇게 쉐도우 밀크 쿠키도 풀려났으며 다시한번 세상의 혼란이오기 시작했지만 2대 영웅이자 진리의 소울잼인 퓨어바닐라 쿠키가 쉐도우 밀크 쿠키를 저지하려고했으며 퓨어 바닐라 또한 거짓으로 물들이며 타락하게 되었습니다 하지만&amp;nbsp; 2대 영웅쿠키들은 그 운명을 뛰어넘고 새롭게 다시한번 각성하며 비스트 쿠키들을, 쉐도우 밀크 쿠키를 다시한번 저지하며 막아냈습니다 하지만 이 모든것 또한 어둠마녀 쿠키의 계획이였으며 어둠마녀 쿠키가 다시한번 비스트들을 연합시키고 제 2차 검은 가루 전쟁을 선포했습니다 각자 비스트들과 영웅 쿠키들이 다시한번 격돌했지만 비스트들이 끝내졌습니다 하지만 모든것은 어둠마녀가 소울잼의 힘을 가져가 마녀가 되려 한 작전이였으며 그렇게 사일런트 솔트쿠키는 모두에게 침묵 마법을 걸어 못움직게 만든뒤 어둠마녀를 도왔습니다 그렇게 계속 침묵에 빠져있었지만 사일런트 솔트 쿠키는 어둠마녀의 분신이자 일부인 아직 안타락하고 진정한 자유로 각성한 세인트릴리 쿠키의 작전을 도운것이며 어둠마녀를 저지 하고 결국 세인트릴리 쿠키도 죽으며 모든 전쟁이 끝났습니다 하지만 쉐도우 밀크 쿠키가 침묵마법이 깨지자 자신이 우연히 발견한 어둠마녀가 만들려한 궁극의 쿠키 반죽 일부를 먹어 다시 회복했고 강한 차원이동 능력을 얻어 차원이동을 해 쿠키세계의 시간선을 방해하려 하고있으며 현재 시간지기 쿠키가 저지할수없을 정도로 새로운 시간선을 만들어내며 쉐도우 밀크 쿠키가 만든 세계와 원래 세계가 존재하게 되었으며 퓨어바닐라가 다시한번 쉐도우 밀크와 각자의 시간선을 건 도박을 하려고 하고있습니다&amp;lt;스토리 더이상 안나옴&amp;gt;&lt;br /&gt;&lt;br /&gt;스토리 작성소감&lt;br /&gt;짧은 시간안에 할수 있을까 의문이였지만 그래도 내가 좋아하고 스토리가 재밌었어서&amp;nbsp; 기억에 잘남았다 또한 제한시간안에 할수있을만큼 스토리를 요약해서 뿌듯하다&lt;/p&gt;</description>
      <author>43218902</author>
      <guid isPermaLink="true">https://43218902.tistory.com/10</guid>
      <comments>https://43218902.tistory.com/10#entry10comment</comments>
      <pubDate>Mon, 23 Mar 2026 22:56:35 +0900</pubDate>
    </item>
    <item>
      <title>백준 10950번째</title>
      <link>https://43218902.tistory.com/9</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;반복문을 사용하여 풀엇습니다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1396&quot; data-origin-height=&quot;645&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/czz16H/dJMcacP0uRs/6l3Xs1Gxrvgkc05CsEptq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/czz16H/dJMcacP0uRs/6l3Xs1Gxrvgkc05CsEptq0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/czz16H/dJMcacP0uRs/6l3Xs1Gxrvgkc05CsEptq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fczz16H%2FdJMcacP0uRs%2F6l3Xs1Gxrvgkc05CsEptq0%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;1396&quot; height=&quot;645&quot; data-origin-width=&quot;1396&quot; data-origin-height=&quot;645&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <author>43218902</author>
      <guid isPermaLink="true">https://43218902.tistory.com/9</guid>
      <comments>https://43218902.tistory.com/9#entry9comment</comments>
      <pubDate>Mon, 23 Mar 2026 22:48:45 +0900</pubDate>
    </item>
    <item>
      <title>백준 2739 반복문 문제</title>
      <link>https://43218902.tistory.com/8</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/2739&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.acmicpc.net/problem/2739&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;N을 입력받고 구구단 N을 출력하는 문제였으며 for문을 사용하여 간단하게 풀었다&lt;/p&gt;
&lt;pre class=&quot;cs&quot; style=&quot;color: #000000;&quot;&gt;&lt;code&gt; int a = int.Parse(Console.ReadLine());
            
 for (int i = 1; i &amp;lt;= 9; i++)
 {
     Console.WriteLine($&quot;{a} * {i} = {a * i}&quot;);

 }&lt;/code&gt;&lt;/pre&gt;</description>
      <author>43218902</author>
      <guid isPermaLink="true">https://43218902.tistory.com/8</guid>
      <comments>https://43218902.tistory.com/8#entry8comment</comments>
      <pubDate>Sun, 22 Mar 2026 23:23:19 +0900</pubDate>
    </item>
    <item>
      <title>백준 2525번 오븐 문제</title>
      <link>https://43218902.tistory.com/7</link>
      <description>&lt;pre class=&quot;arduino&quot; style=&quot;color: #000000;&quot;&gt;&lt;code&gt; int[] arr = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
 int A = arr[0];
 int B = arr[1];
 int C = int.Parse(Console.ReadLine());
 int min = (A * 60) + B + C;

            
 if (min / 60 &amp;gt;= 24)
 {
     Console.WriteLine($&quot;{(min / 60) % 24} {min % 60}&quot;);
 }
 else if (min / 60 &amp;gt;= 0 &amp;amp;&amp;amp; min % 60 &amp;gt;= 0)
 {
     Console.WriteLine($&quot;{min / 60} {min % 60}&quot;);
 }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에는 그냥 전체 값을 더한식을 안하고 하나하나 if로 조건을 만들어갔다 그치만 그렇게하면 너무 길어지고 점점 보기어려워지는 노동이되는거같았다 그래서 조언을 얻어 모든 값을 분으로 바꾸는 식을 하나 만들었고 이식을 토대로 min %60을 분으로 출력하게 했으며 또한 min / 60을 통해 시를 구했다 그리고 원래 else if 와 if 안에있는 식이 달랐다 그래서 계속 아래식을 못쓰자 서로의 순서를 바꿔보았더니 쉽게 풀렸으며 나왔다&lt;/p&gt;</description>
      <author>43218902</author>
      <guid isPermaLink="true">https://43218902.tistory.com/7</guid>
      <comments>https://43218902.tistory.com/7#entry7comment</comments>
      <pubDate>Sat, 21 Mar 2026 16:51:48 +0900</pubDate>
    </item>
    <item>
      <title>알림시계문제 백준 2884</title>
      <link>https://43218902.tistory.com/6</link>
      <description>&lt;pre class=&quot;bash&quot; style=&quot;color: #000000;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;int[] arr = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
int H = arr[0];
int M = arr[1];
int C = arr[1] - 45;
           
int b = 59;
int c = 23;
if (H != 0 &amp;amp;&amp;amp; C &amp;lt; 0)
{
    Console.WriteLine($&quot;{H - 1} {C + 60}&quot;);
    
}

else if (H == 0 &amp;amp;&amp;amp; C &amp;lt; 0)
{
    Console.WriteLine($&quot;{c} {C + 60}&quot;);
    
}


else if (C &amp;gt;= 0)
{
    Console.WriteLine($&quot;{H} {C}&quot;);
    
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;거의 다풀었는데 자꾸만 조그만한 변수들이 있어 여러므로 헤메었던 문제였다 먼저 공백 기준으로 나눠주며 배열 0&amp;nbsp; 1을 만들고 c는 둘이 계산했을때 음수인지 아닌지를 판별하기 쉽게 하려고 만들었으며 아래식처럼 이렇게 만들어 조건을 달성했다 별로 어렵지않은 문제라면 문제겠지만 내겐 좀더 사고력을 키울수있고 헤메어도 천천히 적어나가며 답을 찾을수있던 문제였다&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/2884&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.acmicpc.net/problem/2884&lt;/a&gt;&lt;/p&gt;</description>
      <author>43218902</author>
      <guid isPermaLink="true">https://43218902.tistory.com/6</guid>
      <comments>https://43218902.tistory.com/6#entry6comment</comments>
      <pubDate>Sat, 21 Mar 2026 11:44:55 +0900</pubDate>
    </item>
    <item>
      <title>백준 2480번 주사위 세개</title>
      <link>https://43218902.tistory.com/5</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/2480&quot;&gt;https://www.acmicpc.net/problem/2480&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;namespace&amp;nbsp;백준 &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;internal&amp;nbsp;class&amp;nbsp;Program &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;static&amp;nbsp;void&amp;nbsp;Main(string[]&amp;nbsp;args) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int[]&amp;nbsp;arr&amp;nbsp;=&amp;nbsp;Array.ConvertAll(Console.ReadLine().Split(),&amp;nbsp;int.Parse); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;a&amp;nbsp;=&amp;nbsp;arr[0]; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;b&amp;nbsp;=&amp;nbsp;arr[1]; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;c&amp;nbsp;=&amp;nbsp;arr[2]; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(a&amp;nbsp;==&amp;nbsp;b&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;b&amp;nbsp;==&amp;nbsp;c&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;a&amp;nbsp;==&amp;nbsp;c) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine($&quot;{10000&amp;nbsp;+&amp;nbsp;a&amp;nbsp;*&amp;nbsp;1000}&quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&amp;nbsp;if&amp;nbsp;(a&amp;nbsp;==&amp;nbsp;b&amp;nbsp;||&amp;nbsp;b&amp;nbsp;==&amp;nbsp;c&amp;nbsp;||&amp;nbsp;c&amp;nbsp;==&amp;nbsp;a) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(a&amp;nbsp;==&amp;nbsp;b) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(1000&amp;nbsp;+&amp;nbsp;a&amp;nbsp;*&amp;nbsp;100); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&amp;nbsp;if&amp;nbsp;(b&amp;nbsp;==&amp;nbsp;c) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(1000&amp;nbsp;+&amp;nbsp;b&amp;nbsp;*&amp;nbsp;100); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(1000&amp;nbsp;+&amp;nbsp;c&amp;nbsp;*&amp;nbsp;100); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&amp;nbsp;if(a&amp;nbsp;!=&amp;nbsp;b&amp;nbsp;||&amp;nbsp;b&amp;nbsp;!=&amp;nbsp;c&amp;nbsp;||&amp;nbsp;c&amp;nbsp;!=&amp;nbsp;a) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(a&amp;nbsp;&amp;gt;&amp;nbsp;b&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;a&amp;nbsp;&amp;gt;&amp;nbsp;c) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(a&amp;nbsp;*&amp;nbsp;100); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&amp;nbsp;if&amp;nbsp;(b&amp;nbsp;&amp;gt;&amp;nbsp;c&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;b&amp;nbsp;&amp;gt;&amp;nbsp;a) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(&amp;nbsp;b&amp;nbsp;*&amp;nbsp;100); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&amp;nbsp;if&amp;nbsp;(c&amp;nbsp;&amp;gt;&amp;nbsp;a&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;c&amp;nbsp;&amp;gt;&amp;nbsp;b) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(&amp;nbsp;c&amp;nbsp;*&amp;nbsp;100); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;}&lt;br /&gt;if문 구조를 좀더 많이 풀어보면 바로 풀수있을거같다&lt;br /&gt;&lt;br /&gt;처음 풀었을땐 이거보다 3배정도 더 긴 식이였으며 if를 사용하는 프로그래밍 문제에 대한 풀이력이 확실하게 오른거같다 이런 단순하면서 현재의 나에게 도움이되는 문제들을 많이 풀어보고 싶다&lt;/p&gt;</description>
      <author>43218902</author>
      <guid isPermaLink="true">https://43218902.tistory.com/5</guid>
      <comments>https://43218902.tistory.com/5#entry5comment</comments>
      <pubDate>Thu, 19 Mar 2026 19:40:37 +0900</pubDate>
    </item>
    <item>
      <title>유니티란?</title>
      <link>https://43218902.tistory.com/4</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;유니티란?&amp;nbsp; &lt;br /&gt;( &lt;br /&gt;게임을&amp;nbsp;만들수있게&amp;nbsp;도와주는&amp;nbsp;프로그램 &lt;br /&gt;레고처럼&amp;nbsp;기능&amp;nbsp;조립(ex)&amp;nbsp;엔트리) &lt;br /&gt;) &lt;br /&gt;&lt;br /&gt;게임&amp;nbsp;오브젝트란? &lt;br /&gt;( &lt;br /&gt;게임&amp;nbsp;화면에&amp;nbsp;등장하는&amp;nbsp;물체&amp;nbsp;ex)&amp;nbsp;롤&amp;nbsp;바론,&amp;nbsp;드래곤,&amp;nbsp;아리,&amp;nbsp; &lt;br /&gt;(아무런&amp;nbsp;코딩없이&amp;nbsp;적으면&amp;nbsp;그냥&amp;nbsp;소라&amp;nbsp;껍데기 &lt;br /&gt;) &lt;br /&gt;&lt;br /&gt;컴포넌트란? &lt;br /&gt;( &lt;br /&gt;게임&amp;nbsp;오브젝트에&amp;nbsp;기능&amp;nbsp;붙이기 &lt;br /&gt;위치,&amp;nbsp;이미지&amp;nbsp;보이기,&amp;nbsp;물리&amp;nbsp;충돌&amp;nbsp;등 &lt;br /&gt;그니까&amp;nbsp;애가&amp;nbsp;소라같은&amp;nbsp;느낌 &lt;br /&gt;즉&amp;nbsp;컴포넌트란&amp;nbsp;기능을&amp;nbsp;붙여주는&amp;nbsp;부품 &lt;br /&gt;) &lt;br /&gt;&lt;br /&gt;오브젝트랑&amp;nbsp;컴포넌트 &lt;br /&gt;( &lt;br /&gt;비어있는&amp;nbsp;오브젝트(비어있는&amp;nbsp;소라&amp;nbsp;껍데기)에&amp;nbsp;필요한&amp;nbsp;컴포넌트(소라)를&amp;nbsp;붙이자 &lt;br /&gt;즉&amp;nbsp;소라껍데기에&amp;nbsp;소라를&amp;nbsp;넣자 &lt;br /&gt;) &lt;br /&gt;컴포넌트&amp;nbsp;장점 &lt;br /&gt;( &lt;br /&gt;재사용&amp;nbsp;가능(다시&amp;nbsp;안만들어도댐) &lt;br /&gt;독립적이여서&amp;nbsp;추가&amp;nbsp;삭제&amp;nbsp;쉬움 &lt;br /&gt;) &lt;br /&gt;&lt;br /&gt;오늘&amp;nbsp;적은걸&amp;nbsp;하나하나&amp;nbsp;이해해보자면&amp;nbsp;오브젝트는&amp;nbsp;소라&amp;nbsp;껍데기고&amp;nbsp;&amp;nbsp;컴포넌트는&amp;nbsp;소라&amp;nbsp;처럼&amp;nbsp;서로가&amp;nbsp;서로를&amp;nbsp;필요해하는&amp;nbsp;관계다 &lt;br /&gt;또한&amp;nbsp;게임&amp;nbsp;오브젝트는&amp;nbsp;게임화면에&amp;nbsp;등장하는&amp;nbsp;물체이다&amp;nbsp;그리고&amp;nbsp;컴포넌트는&amp;nbsp;기능을&amp;nbsp;붙여주고&amp;nbsp;마지막으로&amp;nbsp;유니티는&amp;nbsp;레고처럼&amp;nbsp;기능을&amp;nbsp;조립하며&amp;nbsp;게임&amp;nbsp;제작을&amp;nbsp;도와주는&amp;nbsp;프로그램 &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <author>43218902</author>
      <guid isPermaLink="true">https://43218902.tistory.com/4</guid>
      <comments>https://43218902.tistory.com/4#entry4comment</comments>
      <pubDate>Wed, 18 Mar 2026 00:51:57 +0900</pubDate>
    </item>
  </channel>
</rss>