[C#] 부족한 금액 계산하기
문제 설명 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다. 놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요. 단, 금액이 부족하지 않으면 0을 return 하세요. 제한사항 놀이기구의 이용료 price : 1 ≤ price ≤ 2,500, price는 자연수 처음 가지고 있던 금액 money : 1 ≤ money ≤ 1,000,000,000, money는 자연수 놀이기구의 이용 횟수 c..
2023.12.20
[C#] 문자열 내림차순으로 배치하기
문제 설명 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. 제한 사항 str은 길이 1 이상인 문자열입니다. 입출력 예 s return "Zbcdefg" "gfedcbZ" 기본 제공 코드 public class Solution { public string solution(string s) { string answer = ""; return answer; } } 이 문제는 조건을 어떻게 줘야 되나 헷갈릴 수 있지만 문제를 잘 읽어보면 이미 모든게 준비되어 있고 배열 메서드를 사용하면 간단하게 풀 수있는 문제이다. using System; public..
2023.12.20
no image
[내일배움캠프] Unity 게임 개발 숙련 - 랜덤타워디펜스(적 구현)
오늘은 팀원과의 회의를 통해 정해졌던 적 구현 파트를 진행했다. 주말동안 작업했던 내용을 깃허브에 올리고 팀원들과 공유를 하면서 하루를 시작했다. 우선 주말에 구현한 내용들은 적 몬스터 만들기, 적을 짜여진 동선으로 이동하게 만들기 스폰지점 생성, 임시)라운드 구현, 등이있다. 덕분에 할 일이 없어진 나는 오늘... 적 몬스터는 SO를 사용해서 데이터 관리를 해주었고 다음은 적의 이동 동선인데 적에게 콜라이더, 리지드바디를 줘서 충돌시 방향 돌려주면 된다는 생각을 가지고 있었기 때문에 코드만 짜면 되는 일이였다. 근데 생각만큼 잘 나오지 않아서 혼자 고민하다가 같이 스터디를 하는 동기들에게 도움을 구하여 해결했다. Quaternion.AngleAxis(); 라는 유니티 엔진 메서드를 이용해보라고 알려줘서..
2023.12.18
no image
[내일배움캠프] Unity 게임 개발 숙련 - 다시 시작된 팀프로젝트 (게임정하기)
이번에도 역시 팀 프로젝트가 시작됬다. 이번에 팀프로젝트에 만들게된 게임은 타워디펜스 , 2D로그라이크 , 3D 퍼즐 플랫폼, 3D 서바이벌 중 선택을 하는 거였다. 우리팀은 첫번째인 타워디펜스를 하기로 만장일치가 나와서 선택하는데 어려움없이 게임을 골랐다. 타워디펜스는 클래식한 느낌이 있는 게임도 있지만 요샌 랜덤요소가 들어간 랜덤타워디펜스로도 많이 알려져있어서 우리 조는 랜덤타워디펜스를 만들기로 했다. 컨셉을 정하는데는 이번 팀이름인 '롤이나하시조' 에서 바로 롤을 그냥 가져와서 타워 디펜스에 넣자고 의견을 내어 팀원분들이 동의를 해주고 결정되었다. 역할 분담을 하는데 있어서 일단 크게 3가지로 나뉘었는데 타워, 적, UI 구현 이렇게 3개의 큰틀로 나누고 한가지당 2명씩 들어가서 세부 조율 후 구현..
2023.12.15
[C#] 가운데 글자 가져오기
문제 설명 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 제한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s return "abcde" "c" "qwer" "we" 기본 제공 코드 public class Solution { public string solution(string s) { string answer = ""; return answer; } } 처음 문제를 봤을때는 string 메서드인 Substring을 사용해서 문자열의 위치값을 찾는 방법을 생각해서 해봤는데 잘 사용할줄 몰라서 번번히 실패하고 거듭 고민을 해보았다. 고민한 결과 문자의 가운데 라면 쉽게 구할 수 있지 않을까 하는 생각에..
2023.12.15
[내일배움캠프] Unity 게임 개발 숙련 - 개인과제 마무리(해설)
어제 개인과제로 만들었던 과제를 제출하고 오늘 개인과제 해설영상이 올라왔다. 사소하지만, 얕은지식으로 유니티를 사용하던 내가 깨달은 내용이 많이 있지만 그중 하나를 말하자면 그동안 사용하면서도 걱정을 했었던 유니티 내의 UI끼리 연결해서 작동 시키는 방식을 선호하지 말라는 것이였다. 이부분은 진짜 블로그에 여러번 쓴내용이긴 한데 항상 하면서 내가 잘 하고 있는게 맞나 라는 생각을 하며 정답지가 있다면 엿보고 싶었는데 이번에 좀 알게 된거 같다. 예를 들어 버튼을 만들고 버튼 컴포넌트 onClick() 에 다른 오브젝트들을 연결해서 사용하고 있었다고 친다면 버그가 발생해도 그 버그를 눈으로 볼 때 까지 알아채기가 힘들어진다는 것 이였다. 그동안 UI를 만들고 작동시키는데 스크립트를 짜지 않고 유니티 내부에..
2023.12.14
no image
[내일배움캠프] Unity 게임 개발 숙련 - ScriptableObject(2)
이전 글 처럼 SO를 작성하고 실제 적용시키는 법 이번 강의에서 만들고 있는 3D 서바이벌 게임에 적용한 SO, 그리고 적용시킨 모습을 작성하려 한다. 우선 아래와 같이 SO데이터 스크립트를 작성한다. using System.Collections; using System.Collections.Generic; using UnityEngine; public enum ItemType { Resource, Equipable, Consumable } public enum ConsumableType { Hunger, Health } [System.Serializable] public class ItemDataConsumable { public ConsumableType type; public float value;..
2023.12.13
[내일배움캠프] Unity 게임 개발 숙련 - ScriptableObject(1)
ScriptableObject(스크립터블 오브젝트) 'SO' 라고도 부르는 이것은 대량의 데이터를 저장하고 사용하는 데이터 컨테이너이다. SO를 사용하면 데이터의 값이 복제되는 일을 방지하여 메모리 관리에도 용이하게 쓰인다. 변경되지 않는 데이터를 사용하는 프리팹의 데이터를 일반 변수로 구현할 경우 인스턴스화 할때마다 프리팹에 이 데이터의 사본이 생성되는데 SO를 사용하면 메모리에 SO의 데이터 사본만을 저장하고 이를 참조하는 방식으로 작동한다고 한다. SO 클래스는 유니티에서 기본적으로 제공하는 것으로 모노비헤이비어 클래스와 마찬가지로 기본 유니티 오브젝트에서 파생되지만 게임오브젝트에 컴포넌트로 부착할 수 없고 프로젝트에 에셋으로 저장된다. using System.Collections; using Sy..
2023.12.12
no image
[내일배움캠프] Unity 게임 개발 숙련 - 2D던전입장준비 만들기
주말 + 오늘 한 일 1. 강의 듣기 2D(1회 정독) + 3D (반절) 2. 개인 과제 만들기(필수) 오늘은 강의를 듣다 말고 개인과제를 만들었다. 제출까지 남은 시간을 고려했을 때 강의도 다 이해하지 못하고 어영부영 쫓기듯 과제를 만드는 미래를 봤기 때문이다. 그래서 일단 과제를 듣는 걸 멈추고 개인과제를 확인했는데 두 가지 중 선택해서 한 가지를 만드는 거였다. 첫 번째는 난이도 하, ATM 만들기였고 두 번째는 예전에 C#콘솔로 만들었던 어떤 던전에 입장하기 전을 구현하는 내용이었다. https://iden351.tistory.com/12 [내일배움캠프] C# 문법 종합반 - 개인 프로젝트 마무리 주말 포함 해서 4일 동안 만든 프로젝트를 제출 완료했다. 이번에 만든 프로젝트이름은 TextGame..
2023.12.11