반응형 학교 지식.93 백준 2562 : 최댓값 - C# 풀이 이번 문제도 간단하지만 문제를 잘 읽어야 한다.기본적으로는 여러 숫자를 입력받아 그 중 가장 큰 숫자의 값과인덱스를 출력하면 되는 간단한 문제인데, 숫자의 개수가 9개인 것을 인지해야 한다.나는 문제를 제대로 안읽어서 while(true) 에 break를 섞어서 만들었다가9번이라는 것을 알고 for문으로 코드를 바꾸는 노동을 했다. using System;namespace unicoti { class Program { static void Main(string[] args) { int max = 0; int index = 0; for(int i = 0; i 코드는 간단하다.for문을 9번 반복해서 각 숫자.. 코딩테스트 (C#) 2024. 9. 9. 소원의 섬 - 7편 오늘은 저번 일지에서 세워뒀던 목표인 깃허브 연결과 씬 배치를 진행했다.상호작용하면 각 장소에 맞는 Scene으로 이동하게 된다.이제 마을의 기본 기능은 다 만든 것 같다.뭐 새로운 장소가 추가될 수도 있긴 하지만 말이다. 이렇게 족장의 집 문 앞에서 상호작용 버튼을 누르게 되면, 아직 만들지는 않았지만 이렇게 새로운 씬으로 이동하게 된다.족장의 집 말고도 상점, 대장간 등 여러 장소가 있는데,다음 일지에서는 그런 장소들의 씬을 구현하는 작업이 될 것 같다. 뭐 이 글을 보는 사람은 없겠지만 마을에 추가했으면 좋겠는장소가 있다면 추천해줬으면 좋겠다. 마을이 약간 허전하다. 아무튼, 씬을 연결하는 정도는 매우 간단해서 빠르게 끝내고깃허브와 연결을 시작했다. 이렇게 개발하다보면 외부에서 열기도 불편하고혹시나.. 일지 2024. 9. 8. 소원의 섬 - 6편 오늘도 뭔가가 조금 추가됐다.어제 원의 형태로 상호작용 가능한 범위를 설정했었던 것과 다르게,원의 범위로 설정하면 건물 뒷편으로도 건물 안으로 들어갈 수 있기에현실성이 없는 것 같아서 앞쪽으로만 들어갈 수 있게 할 것 이라고 말했었다. https://unicoti-sub.tistory.com/45 (어제 - 소원의 섬 5편) 소원의 섬 - 5편오늘도 소원의 섬을 조금 개발했다.전에 얘기했던 장소별로 다른 기능을 지원하기 위해서VillageManager 스크립트에서 작업을 좀 해주고 Player 스크립트에서 임시로있었던 비슷한 내용의 스크립트unicoti-sub.tistory.com 아무튼, 오늘은 그걸 설정하고 바뀐 설정으로 인한 여러가지 오류들을재정비하는 시간을 보냈다. 따로 구분되는 Interact.. 일지 2024. 9. 8. 소원의 섬 - 5편 오늘도 소원의 섬을 조금 개발했다.전에 얘기했던 장소별로 다른 기능을 지원하기 위해서VillageManager 스크립트에서 작업을 좀 해주고 Player 스크립트에서 임시로있었던 비슷한 내용의 스크립트를 없애서 중복을 없애주었다. 원래 다 원으로 해놨었는데 그렇게 하니까 구분이 안되는 것 같아서일단 임시로 크기도 조금 고려해서 이미지를 만들었다. 다만 이렇게 만들고 보니까 원 형태로 플레이어를 감지하는거면문 뒤에서 들어갈 수 있는거니까 좀 이상할 것 같았다.아무래도 문으로 들어가는 게 맞는 것 같아서 코드를 새로 짜려고 계획하고 있다. 아마도 구역을 정해서 콜리더를 위치시켜놓은 다음 충돌을 감지하거나플레이어의 위치를 판단해서 문 앞인지 구분하는 등의 방법이 있을 것 같다.내 머릿속에 있는 대로 하다보니.. 일지 2024. 9. 7. 백준 10818 : 최소, 최대 - C# 풀이 이번 문제도 간단하다.첫 줄에는 수의 개수가 주어지고, 두번째 줄에는 띄어쓰기로 구분된몇가지의 수가 나열되어 나온다. 우리는 그 중에서 최소와 최대를 찾으면 되는 문제이다.string 배열을 int 배열로 변환하는 과정은 동일할 것 같고, (아니면 요소를 파싱하던가)이후 미리 최소, 최대 변수를 만들어 놓고 저장된 값 보다 작거나 클 경우변수를 그 요소로 업데이트 하는 식의 for문으로 알고리즘을 만들 수 있을 것 같다. 아니면 나처럼 연습보다는 실무적인 것을 더욱 우선시 하는 사람이거나멋있어보이고 싶다면 Linq를 써보는 것도 좋다.Linq는 특히 배열이나 리스트에서 항상 직접 만들어야해서 불편했던여러가지 기능들을 제공하는데, 이런 경우에 응용하면 매우 편하다. using System;using Sys.. 코딩테스트 (C#) 2024. 9. 7. 백준 10871 : X보다 작은 수 - C# 풀이 이번 문제도 나름대로 간단하다.왜 인지 모르겠지만 이번 문제는 내가 어제 프로젝트에서 했던 일과완전히 똑같은 일이였다. 굉장히 신기했다. 아무튼, 첫 줄에서 배열의 길이와 X의 값이 주어지는데,아래에서 주어질 배열에서 X보다 작은 값들을 모두 출력하면 성공인 문제이다. using System;using System.Linq;namespace unicoti { class Program { static void Main(string[] args) { string[] input = (Console.ReadLine()??"").Split(' '); int.TryParse(input[0], out int testCount); int.Tr.. 코딩테스트 (C#) 2024. 9. 5. 백준 10807 : 개수 세기 - C# 풀이 이번 문제는 확실히 전 단계에 비해서는 어려워졌다.일단 주제는 "일차원 배열"이라고 한다. 코딩을 실제 프로젝트에서 해보면 알겠지만조금 복잡한 알고리즘을 설계할 때면 항상 배열이 등장한다.그만큼 배열의 효과는 알고리즘에 필수적이며 실제 프로젝트에서 반드시 사용된다.이 단계도 이차원 배열까지는 안나오기에 할만 할 것이다. 일단 기초적인 방법으로는 두번째 줄을 배열로 저장한 다음한 원소씩 돌아가면서 개수를 세는 방법이 있다.(솔직히 첫 줄은 왜 주어진지 모르겠다) 나는 Linq의 메서드를 사용했다.뭐 알고리즘 능력을 키울때는 안쓰는 게 좋지만 시간 복잡도가 큰 것도 아니고나는 실제 프로젝트를 많이 진행해봤기에 굳이 피할 이유가 없다고 생각했다. using System;using System.Linq;name.. 코딩테스트 (C#) 2024. 9. 5. 소원의 섬 - 4편 모의고사를 보고 와서 또 오랜만에 글을 남긴다.이번에는 전에 말했었던 장소 구별에 대해서 코드를 짜봤다.일정 범위 이내로 들어가면 상호작용이 가능해지도록 마을을 구성했는데,true, false로는 쉽게 코드를 구성할 수 있었으나 무슨 장소인지까지 전달하기 위해서는 더 많은 아이디어가 필요했다.(다양한 장소가 있어서 겹치면 안되기 때문에 복잡함) 그래서 나는 각 장소마다 bool 값을 받아서 상위 클래스에서 그걸처리하여 Player에게 보내주면 어떨까라는 생각을 했고,오늘은 그 아이디어를 코드로 옮겨서 성공시켰다. 간단하게 그림으로 나타내보았다.각 장소마다 조건을 따져서 플레이어가 근처에 있는지 판단한 다음매니저로 보내서 어디가 가장 가까운지와 가까운곳이 얼마나 되는지를 판단한다. 마을에서 장소 상호작용의.. 일지 2024. 9. 4. 백준 10951: A + B - 4 C# 풀이 이번 문제도 쉽지만 약간의 주의점이 있는 문제이다.뭐 A+B는 쉽게 할 수 있겠으나 테스트의 개수가 주어지지 않는다.이걸 해결할 방법만 찾으면 쉽게 풀리는 문제이다. using System;namespace unicoti { class Program { static void Main(string[] args) { while(true) { string input = (Console.ReadLine()??""); if(input == "") break; string[] arr = input.Split(' '); int.TryParse(arr[0], out int n.. 코딩테스트 (C#) 2024. 9. 3. 백준 10952 : A+B-5 C# 풀이 이번 문제도 간단한 편이다.다만 입력의 형식이 조금 달라졌다. 원래 같았으면 테스트의 개수가 맨 처음 주어지는 형태일텐데이번에는 그런건 없고 0 0에서 끝내라는 명령뿐이다. 그래서 이 문제에서는 for문의 횟수를 정할 수 없기에while을 쓰라고 장려하는 문제가 아닐까 싶다.while(true)문을 사용해서 그냥 계속 검사되도록 해주었다.물론 최적화에는 악영향이 가는 코드일 것 같다고 생각된다. using System;namespace unicoti { class Program { static void Main(string[] args) { while(true) { string[] arr = (Console.ReadLine()??"").Sp.. 코딩테스트 (C#) 2024. 9. 3. 소원의 섬 - 3편 오늘 또다시 소원의 섬 개발을 진행했다.물론 숙제가 있지만 하루 정도는 개발에 투자해도 괜찮을 것 같았다.일단 인풋 시스템을 완성했다. public void OnTouch(InputValue value) { Vector2 touchPos = value.Get(); Vector3 worldPos = Camera.main.ScreenToWorldPoint(new Vector3(touchPos.x, touchPos.y, 10)); worldPos.z = 0; targetPos = worldPos; } 마우스의 위치로 이동하는 코드를 완성했다.이전에 실패했던 이유를 10분만에 찾아내서 내 의도대로 완성했다.결국은 모바일로 만들거라서 이렇게 구상했다... 일지 2024. 8. 31. 백준 2439 : 별 찍기 -2 C# 풀이 이번 문제도 별 찍기 문제이지만 피라미드가 반대편으로 이동했다.1번 줄에는 띄어쓰기가 4개에 별이 1개,2번 줄에는 띄어쓰기가 3개에 별이 2개, 즉 i번째에는 띄어쓰기가 (5-i)개에 별이 i개로 코드를 구성해주면 된다.물론 5라는 수는 입력값이라서 실제로는 (변수-i)가 되어야 한다.나름대로 간단한 문제이다. 나는 이중 for문으로 구성했다. using System;namespace unicoti { class Program { static void Main(string[] args) { int.TryParse(Console.ReadLine(), out int testCaseCount); for(int i = 1; i 먼.. 코딩테스트 (C#) 2024. 8. 31. 이전 1 2 3 4 5 6 7 8 다음 반응형