01/24 본캠프 #22

guno park·2024년 1월 24일
0

본캠프

목록 보기
22/77

---알고리즘 풀이---

JadenCase 문자열 만들기

풀이

  • 스플릿으로 공백으로 자르면 공백이 여러개 붙어 있을때 하나는 떨어져나옴
    문자열들을 공백단위로 분리시켜서 첫 문장이 무엇인지를 검사한 후 상황에 맞게 변경해주었다.
    숫자가 먼저나올 경우 소문자로, 문자가 나올 경우 전체를 ToLower해주고 앞 글자만 대문자로 바꾸는 식으로
using System;

public class Solution {
    public string solution(string s) {
         string answer = "";
        string[] parts = s.Split(' ');
        for(int i = 0; i<parts.Length;i++)
        {
            switch (parts[i].Length)
            {
                case 0:
                    if(i!=parts.Length-1)
                                answer += ' ';
                    break;
                    
                default:
                    switch (parts[i][0])
                    {
                        case '1':
                        case '2':
                        case '3':
                        case '4':
                        case '5':
                        case '6':
                        case '7':
                        case '8':
                        case '9':
                        case '0':
                            parts[i] = parts[i].ToLower();
                            answer += parts[i];
                            if(i!=parts.Length-1)
                                answer += ' ';
                            break;
                        default:
                            string q = parts[i].ToLower();
                            char[] phraseAsChars = q.ToCharArray();
                            phraseAsChars[0] = Convert.ToChar(q[0] -32);
                            q = new string(phraseAsChars);
                            answer += q;
                            if(i!=parts.Length-1)
                                answer += ' ';
                            break;
                    }
                    break;    
            }           
        }
        return answer;
    }
}

트러블 슈팅

  1. 뒤에 공백이 있을 때의 예외처리
    숫자나 문자의 경우에 문자열 사이에 공백처리를 했기때문에 공백을 넣어주는데, 마지막일 경우를 제외하도록 하였다. 하지만 끝이 공백으로 끝나는 경우를 생각하지 않아서 예외가 발생했다. 그래서 공백에도 똑같은 처리를 해주었다.
  2. 대문자 -> 소문자 변환 간 실수
    숫자 뒤에 있을 때 다 Lower하기로 했는데,
    parts[i].ToLower(); 로 해놓고 answer = parst[i] 해버렸다.
    parts[i] = parts[i].ToLower();이렇게 작성해된다..

---깃 특강 유니티---

  • 컨플릭트의 원인
    같은 코드라인을 건들면 발생 (같은 스크립트, 같은 코드라인)
    아예 함수나 클래스가 다르다면 더욱 더 안전

유니티에서는 스크립트만 있는게 아님.
씬에 배치된 바위를 서로 다른 사람이 옮기는 행동은 금물
씬이나 오브젝트는 Conflict가 났을 때 수정하기 매우 어렵다.
이 경우에도 대화를 통해 조정해야함. 스크립트랑 다르게 중간이 없음. 둘중한명의 작업만 남고 다른 작업은 삭제 (.meta파일 충돌)

Conflict가 발생하는 건 못써서 발생하는게 아니라, 협업하다보면 자연스러운 현상.

처음에 씬에는 시작시켜줄 매니저 하나만 올려둠. 시작하면 스크립트를 통해 필요한 오브젝트를 생성해서 사용.
나중에 좀 더 익숙해지면 사용해볼것

브런치 만들 때 실무에서는 작업 단위별로 한다고함

머지는 작업한 각자가 합치는게 좋음
브런치를 쓰고나서 필요없는건 지우던지 새로운 브런치를 만들어 작업하는 걸 권장

작업한걸 올리기 전에 메인으로가서 패치한번 하고하는게 좋음

Solution

솔루션 1. 각자의 작업 파트를 분리하자
conflict가 났다면 대화를 하며 어떤 방식이 좋을지 풀어나가보자
솔루션 2. 각자 작업의 씬도 분리하자!

솔루션 3. 같이 씬을 건드려야 한다면 프리팹 이용.

솔루션 4. 동적 생성. 씬에 오브젝트를 올려두지 않고 프로젝트 관리하는 방법

Tips

Tip1. 깃은 한번 푸시를 했다면 기록이 남겨져있다.
작업하다가 꼬여도 어떻게든 복구가 가능하지 각자 브런치에 잘 올려두자.
Tip2. 커밋은 한번에 하나의 작업단위로 올리는게 좋다.
프로젝트 다 하고 한번에 올리면 내가 해당내용을 어떻게 작업했는지 알기 힘들다.
의미없는 이름의 커밋보다 명확한 이름으로 어떤 작업을 했는지 남겨두자.

유니티 도트 또렷하게 만들기

https://yiyj1030.tistory.com/256

0개의 댓글