1.오늘의 알고리즘 코드 카타 - 공원 산책
//사실 처음 작성하던 것은 IsValidPoint를 따로 구분해서 체크 안하고
//매번 불필요하게 이것저것 체크했는데,
//다른 사람의 답안에서 이런 식으로 빼낸 모습을 보고 한방 맞은 느낌.
using System;
public class Solution {
public int[] solution(string[] park, string[] routes)
{
int y = 0;
int x = 0;
// 시작지점 찾기
foreach(string p in park)
{
int index = p.IndexOf('S');
if(index != -1)
{
x = index;
break;
}
++y;
}
// 길찾기
foreach(string route in routes)
{
string[] splited = route.Split();
string dir = splited[0];
int repeat = Convert.ToInt32(splited[1]);
bool isSuccess = true;
int moveToY = y;
int moveToX = x;
for(int i = 0; i < repeat; ++i)
{
if(dir == "N") --moveToY;
else if(dir == "S") ++moveToY;
else if(dir == "W") --moveToX;
else ++moveToX; // "E"
if(!IsValidPoint(park, moveToY, moveToX))
{
isSuccess = false;
break;
}
}
if(isSuccess)
{
y = moveToY;
x = moveToX;
}
}
return new int[2] { y, x };
}
private bool IsValidPoint(string[] park, int y, int x)
{
int height = park.Length;
int width = park[0].Length;
if(y < 0 || y >= height) return false;
if(x < 0 || x >= width) return false;
if(park[y][x] == 'X') return false;
return true;
}
}
2. 오늘의 작업물
오늘은 브로셔 제작을 위해 자료를 준비해야했다.
또한 플레이 영상을 촬영하여 트레일러를 만들 준비를 해야한다.
또 소소하게 팀원 덕에 드디어 방 코드를 이용한 멀티 접속이 가능해졌기에
이를 띄워주는 옵션과 이를 바로 복사하는 기능을 만들었다. CopyToClipboard 기능은 아래와 같이 구현하여 버튼에 할당 해준 것
private void CopyToClipboard(string str)
{
GUIUtility.systemCopyBuffer = str;
}
'TIL' 카테고리의 다른 글
[TIL]2024-4-25 / 78일차 - 최종 프로젝트 8주차 4일차 (1) | 2024.04.26 |
---|---|
[TIL]2024-4-24 / 77일차 - 최종 프로젝트 8주차 3일차 (0) | 2024.04.24 |
[TIL]2024-4-22 / 75일차 - 최종 프로젝트 8주차 1일차 (1) | 2024.04.22 |
[TIL]2024-4-19 / 74일차 - 최종 프로젝트 7주차 5일차 (0) | 2024.04.20 |
[TIL]2024-4-18 / 73일차 - 최종 프로젝트 7주차 4일차 (1) | 2024.04.18 |