문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다.
strings | n | return |
---|---|---|
["sun", "bed", "car"] | 1 | ["car", "bed", "sun"] |
["abce", "abcd", "cdx"] | 2 | ["abcd", "abce", "cdx"] |
using System.Collections.Generic;
using System.Linq;
using System;
public class Solution
{
public string[] solution(string[] strings, int n)
{
List<string> list = new List<string>();
Array.Sort(strings);
IEnumerable<string> query = from word in strings
orderby word.Substring(n, 1)
select word;
foreach (string str in query)
{
list.Add(str);
}
string[] answer = new string[list.Count];
for (int i = 0; i < list.Count; i++)
{
answer[i] = list[i];
}
return answer;
}
}
https://learn.microsoft.com/ko-kr/dotnet/csharp/programming-guide/concepts/linq/sorting-data
Android build 최적화
Ios 빌드 알아보기
방어구 시스템
public class ArmorSlot : UIItemSlot
{
enum Images
{
Icon,
}
public ItemParts part;
public override void Initialize()
{
Bind<Image>(typeof(Images));
Get<Image>((int)Images.Icon).gameObject.SetActive(false);
Get<Image>((int)Images.Icon).raycastTarget = false;
}
private void Awake()
{
Initialize();
Managers.Game.Player.ToolSystem.OnEquip += EquipArmor;
Managers.Game.Player.ToolSystem.OnUnEquip += UnEquipArmor;
}
public void EquipArmor(QuickSlot quickSlot)
{
Set(quickSlot.itemSlot);
}
public void UnEquipArmor(QuickSlot quickSlot)
{
Clear();
}
public override void Set(ItemSlot itemSlot)
{
Get<Image>((int)Images.Icon).sprite = itemSlot.itemData.iconSprite;
Get<Image>((int)Images.Icon).gameObject.SetActive(true);
}
public override void Clear()
{
Get<Image>((int)Images.Icon).gameObject.SetActive(false);
}
}
방어구의 종류 Head, Body에 따라서 장착되는 곳이 달라지는 것을 enum ItemParts를 이용하여 구분지어 볼 예정이다.
ToolSystem의 UnEquip 메서드 내부에 때우기 코드가 작성되어 있어서 수정할 예정이다.
방어구를 1차 구현하였습니다.
EquipItemData를 이용하여 SO를 만들어서 사용합니다.
ArmorSlot 클래스에서 ToolSystem의 OnEquip, OnUnEquip 이벤트에 메서드를 구독하여 동작합니다.
ToolItemData 클래스에 있던 내구도 변수를 방어구에도 사용하기 위해 EquipItemData로 옮겼습니다.
내구도 변수와 관련된 코드들을 수정하였습니다.