씬 간의 이동이야 LoadScene으로 손쉽게 하면 된다.문제는 플레이어였다.나는 셀레스트처럼 맵을 이동해도 플레이어가 방향과 속력을 유지하길 원했다.하지만 씬을 파괴하고 새로 만드는 과정에서 그렇게 하기가 쉽지 않았다.Trigger가 되는 오브젝트(맵의 끝)에 LoadScene 스크립트를 넣고Save에서는 플레이어의 x,y position과 rb2d의 velocity x,y를 Playerprefs에 저장하게 하였고Load에서는 플레이어를 받아온 후 저 값을 쭉 대입하려고 했다.문제는 LoadScene 스크립트는 결국 이전 씬의 산물인 것인지 뭔지 자꾸 이전 씬의 플레이어 좌표와 속력(당연히 0,0이다)을 불러왔다.포기.. 다음 무식하게 진행한 방법은모든 맵(Grid)을 절대좌표 기준으로 유기적으로 연결..
기본적인 Json에 대한 정보는 다 제끼고 C#에서 실제로 구현할 때 사용한 코드로드 로드에 필요한 플러그인 : LitJson.dll 하나로드할 json 파일은 딕셔너리 형태로 저장둬야 한다. 자세한 문법은 값 변형시켜주는 사이트들 많으니 거기서 변형시켜 그대로 json 파일을 만들어도 된다.또 뭐냐... 유니티 내에서 한글이 깨지는 경우 json파일을 저장할 때 인코딩을 유니코드로 해주자. 그러면 안깨진다. 1. 경로를 포함한 json 파일2. JsonData에 1번의 json 파일 저장3. JsonData의 값을 DeSerialize 이렇게 단순화 가능하다. 1.나 같은 경우 특수 접근 경로를 이용하기 위해 StreamingAssets 폴더를 만들어 거기에 json 파일을 저장하였다.string pa..
비슷한 문제를 전에도 풀었는데,List에 값을 모두 저장해놓고, Min값을 sortedArray에 차곡차곡 저장한다. 저장한 해당 값은 List에서 제거해야한다!지금은 너무 지쳐서.. 시간복잡도 최소인 알고리즘으로 적용도 해봐야지 다음에 ..응 ㅏ음에... BufferedStream bs = new BufferedStream(Console.OpenStandardInput()); StreamReader sr = new StreamReader(bs); StringBuilder sb = new StringBuilder(); int n = int.Parse(sr.ReadLine()); List numbers = new List(); int[] sorted = new int[n]; int temp; for (in..
마지막 문제는 달달해서 감사합니다...그냥 배열 12345... 로 초기화하고 temp를 이용해 Swap해주면 되는 문제다. BufferedStream bs = new BufferedStream(Console.OpenStandardInput()); StreamReader sr = new StreamReader(bs); StringBuilder sb = new StringBuilder(); string[] nm = Console.ReadLine().Split(); int[] basket = new int[int.Parse(nm[0]) + 1]; for (int i = 1; i < basket.Length; i++) basket[i] = i; int cnt = int.Parse(nm[1]); int temp..
나는 이거 엄청 삽질하고 개빡쳤는데 어떻게 정답률이 80퍼지...했는데 C++,java에서 rotate를 지원한다.. 허탈 C#은 그런거 없음 C#으로 푼사람이 나밖에없네 시펄 temp배열에 순서대로 바뀐 바구니를 저장하고, 기존 바구니에 temp값을 덮어씌울것이다.Swap이 안되기 때문에(서로 1:1 교환이 아니다) temp가 필요하다... 여기서 rotate 식이 좀 개같은데 (start + ㅁ ) % cnt + start가 middle값이 나오면 된다.풀면 mid - 2 * start임 아무튼 ㅅㅂ 설명할 힘 없음 그런줄 알아라 미래의 나야 BufferedStream bs = new BufferedStream(Console.OpenStandardInput()); StreamReader sr = ne..
바꾸는 부분의 매커니즘만 잘 적용하면 된다.basket 배열에 1,2,3,4,5,,, 식으로 값을 저장한다. 실제로 바구니를 움직이는게 아니라 index 값을 변경해서 그대로 출력할 것이기 떄문이다.바꿀 부분을 가리키는 start - 1과 end - 1을 Swap한다. (temp값을 이용해서) 이후 start++ end-- 해준다. 이를 start 0) { nm = Console.ReadLine().Split(); start = int.Parse(nm[0]); end = int.Parse(nm[1]); while(start < end) { temp = basket[start - 1]; basket[start++ - 1] = basket[end - 1]; basket[end-- - 1] = temp; } }
그냥 값 배열로 받고 int 전환하고 하라는대로 하면 되는 문제긴 한데,공을 넣는 부분 코드에서 범위를 잘 설정해줬는지만 확인하자. 바구니의 인덱스는 0부터 시작하지 않는다! BufferedStream bs = new BufferedStream(Console.OpenStandardInput()); StreamReader sr = new StreamReader(bs); string[] nm = Console.ReadLine().Split(); string[] strBasket; int[] intBasket; int[] basket = new int[int.Parse(nm[0])]; int num = int.Parse(nm[1]); while (num-- > 0) { strBasket = Console.Re..