오늘의 알고리즘 오류 상황
문제 : 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.
public class Solution
{
public long[] solution(int x, int n)
{
long[] answer = new long[n];
for (int i = 0; i < n; i++)
{
answer[i] = x + x * i;
}
return answer;
}
}
분명 문제의 조건에 위배되는 것도 없어보이는데
15문제 테스트 중 2개가 오류라며 알고리즘 통과 실패.
사실 글 쓰는 지금도 문제가 정확히 뭔지 이해가 되질 않는다.
public class Solution
{
public long[] solution(int x, int n)
{
long[] answer = new long[n];
for (int i = 0; i < n; i++)
{
if(i != 0)
{
answer[i] = x + answer[i-1];
}
else
{
answer[i] = x;
}
}
return answer;
}
}
알고리즘의 진행 방식을 살짝 틀어서 했더니 해결됐다.
팀 프로젝트 진행 상황
오늘은 오류 발생 건이 아예 없진 않았으나 대부분 빨리 해결해서
구현한 기능 위주로 TIL을 작성할까 싶다.
앞서 ItemManager의 대부분의 기능을 구현했기 때문에
오늘은 ItemManager가 빛을 발할 수 있는 인벤토리 및 상점 기능의
자세한 UI를 구현하는데 초점을 맞췄다.
1. 상점 기능 구현하기
지난 번 Utilities.AddLine과 Console.WriteLine의 혼용으로 인해
출력 순서가 꼬이는 문제는 전부 해결됐다.
위와 같이 의도한대로 깔끔하게 판매되는 아이템이 출력되는 것을 확인해 볼 수 있다.
아이템 구매 모드에선 골드를 아이템 가격에 맞게 지불해 아이템을 구입할 수 있다.
(테스트용 검은 한도 초과 시 기능 처리를 확인하기 위한 용도)
구입한 아이템은 아이템 판매 모드로 들어가서 산 가격의 85% 만큼을 돌려받고
아이템을 판매할 수 있다.
2. 인벤토리 구현하기
인벤토리에서 구입한 아이템 목록을 확인할 수 있다.
장착 관리 모드로 넘어가서 장착하지 않은 아이템을 착용하거나,
착용된 아이템을 해제할 수 있다.
3. 게임 진행 상황 저장하기(구현 예정)
Utilities의 LoadType과 SaveType을 이용한 인벤토리 상황 저장 기능이다.
인벤토리의 아이템 정보를 배열로 변환한 뒤,
구조체로 이루어진 데이터로 바꿔 json 확장자로 저장해서
다음번에 게임을 켤 때 로드하는 방식이다.
저장 기능은 잘 되는 것 같은데, 예외처리를 해 주지 않아서 다음과 같은 오류가 뜬다.
내일 오류가 뜨는 부분은 전부 해결하고,
미구현 기능도 구현해서 마감 시간 전에 제출을 목표로 하고 있다...
느낀 점
주말에 걸렸던 감기가 사실은 코로나(...) 였다는 걸 알게됐다.
오늘은 그래도 어제보다는 덜 해서 괜찮았는데 잠을 자도 피곤한 건 여전하다.
그래도 대부분의 기능을 구현하고 저장 기능을 제외하면
오류가 발생하지 않아서 굉장히 만족스러운 하루다.
그리고 내가 구현한 필드와 메서드는 항상 주석을 잘 달아야 한다고 느꼈다...
ItemManager의 GetFieldItem 메서드에 자세한 설명이 없고
더미코드를 까먹은 채 주석도 없이 내버려둬서...
해당 메서드의 기능을 오해해서 코드 병합 시 에러가 생기기도 했다.
항상 코드를 작성하면 남을 위해 주석과 설명을 다는 것을 잊지 말자...
240115-11:15
+ ItemManager.Mode 변수 추가(ShowShop, ShowInventory 노출 정보 관련)
+ Item_Data.json 파일의 'Cost'값이 제대로 들어오지 않던 문제 수정
240115-12:48
+ ShowInventory 장착 관리 모드 추가
+ ShowShop 아이템 판매 기능 추가
이외 여러 개의 commit 들...
'TIL(Today I Learned)' 카테고리의 다른 글
텍스트 RPG 게임 : 팀 프로젝트 발표 - TIL#18 (0) | 2024.01.17 |
---|---|
텍스트 RPG 게임 : 완성과 마무리 - TIL#17 (0) | 2024.01.16 |
텍스트 RPG 게임 : 기능 구현과 디버깅 - TIL#15 (0) | 2024.01.12 |
텍스트 RPG 게임 : ItemManger 나머지 기능 구현하기 - TIL#14 (0) | 2024.01.11 |
텍스트 RPG 게임 : EventManager 이해하기 등 - TIL#13 (0) | 2024.01.10 |