Unity 내일배움캠프 TIL 0914 | 팀 프로젝트 회고 | 알고리즘 프로그래머스 - 예상 대진표

cheeseonrose·2023년 9월 14일
0

Unity 내일배움캠프

목록 보기
34/89
post-thumbnail

오늘은 마참내 팀 프로젝트 제출하고 발표하는 날..
밤을 샜더니 아침에 제정신이 아니었다

스스로 불러온...더보기

약간 뇌에 오?류 난 것처럼 몸이 달달달 떨렸다

팀 프로젝트

회고

  • 발표하는데 화면 공유하면 줌이 자꾸 꺼져서 땀 흘렸다 ;;;;;;;;;
    새벽에도 다른 조원 분이랑 리허설 해보고 제출하고 나서도 팀원들이랑 리허설 한 번 더 했는데 Whyrano Whyrano...
    그래도 어찌어찌 발표는 잘 마쳤다.. 근데 이제 발표 끝나기 전까지의 기억이 다 사라져버림
    긴장이 풀리니까 머리가 하얗게...
  • 예상했던 것보다 훨씬 좋은 결과가 나와서 뿌듯했다!
    팀 프로젝트 진행하면서 팀원들이랑 의견도 많이 공유하고, 그 과정에서 좋은 아이디어들도 너무 많이 나와서 프로젝트 기간 내내 즐겁게 개발할 수 있었다.
    처음에 비해서 팀원들끼리도 많이 편해지고 그만큼 의견도 더 활발하게 공유해서 좋은 결과를 낼 수 있었던 것 같다.

  • 내배캠 와서 처음 팀장을 맡아봤는데 정말정말정말 힘들었다. 근데 이건 팀이 아니라 오로지 내 개인의 성격 문제라서,,
    완벽하지 않으면 참을 수 없는 꼬장꼬장한 성격과 팀장이라는 무게가 합쳐지니 프로젝트 기간 내내 스스로에게 계속 압박을 줬던 것 같다.
    아무도 뭐라고 안 했는데 ㅇㅅaㅇ 괜히 혼자 난?리?
    그래도 늘 열심히 해주셨던 팀원 분들 덕분에 버틸 수 있었던 것 같다!!!
    감사합니다 여러분 꾸벅꾸벅

  • 회의를 하면서 좋은 아이디어들이 정말 많았는데, 시간 관계상 다 구현해보지 못한 것이 아쉽다.
    너무 좋은 아이디어들을 와르르 가져오시는 팀원 분들한테 나도 많이 배운 시간이었다.
    게임 기획, 개발을 바라보는 시야가 좀 더 다양해진 기분!

  • 오늘 과제 제출 후에 튜터님께 찾아가 코드 리뷰를 받아봤다. 튜터님이 말씀해주셨던 의도대로 잘 구현이 된 것 같다고 하셔서 매우! 좋았다!
    한 가지 아쉬운 점이 있다면 이번 프로젝트에서는 Scene마다 UI Manager를 만들어줬는데, 전체 Scene의 UI를 관리하는 UI Manager가 하나만 존재하도록 구현했다면 좋았을 것 같다.
    이 부분에 대해서 질문을 드렸더니 현재 코드에서 더 발전시킬 수 있는 방향성을 제시해주셨다.

    • UI Manager에서 관리하는 Dictionary가 value 값으로 Monobehaviour 형태를 갖는 것이 아닌, 새로운 부모 UI 클래스를 만들어서 그 형태의 value들을 갖게 하는 것
    • 새로 만든 부모 UI 클래스는 Monobehaviour를 상속 받고, UI 클래스들에서 공통적으로 쓰이는 기능들을 정의
    • Dictionary에 저장할 UI 클래스들은 새로 만든 부모 UI 클래스를 상속받도록 구현



알고리즘

Lv.3 70 예상 대진표

  • 오전에 컨디션이 너무 안 좋아서 풀지 못했던 알고리즘 문제를 팀 프로젝트 발표가 끝나고 풀었다.
  • 체크할 점 : 2의 20승 -> int 범위를 넘지 않음 괜춘!
  • 생각해본 풀이법
    • 트리 형태를 갖는 것 같아서 대진 횟수가 2의 지수승에서 이 지수의 값과 관련될 것 같다!
    • 가운데 값을 기준으로 나누면서 a와 b가 mid 기준 왼쪽과 오른쪽에 나누어져 있는지, 왼쪽에만 있는지, 오른쪽에만 있는지를 고려해주면 될 듯
  • 풀이
    • 왼쪽과 오른쪽에 하나씩 나누어져 있을 때는 mid 값보다 큰 값중 가장 작은 2의 배수를 구하고, 2의 몇승인지 지수를 구해줬다. 이게 대진 횟수가 되는 것
    • 왼쪽에만 있을 때는 반으로 한 번 더 나눠줬고, 또 왼쪽에만 있으면 계속 반으로 나눠서 왼쪽과 오른쪽으로 나누어질 때까지 반복
    • 오른쪽에만 있을 때는 번호를 1번부터로 옮겨줘야 계산이 되기 때문에 mid 값만큼 빼주는 작업을 해줬다.
class Solution
{
	public static int solution(int n, int a, int b)
    {
    	int p1 = a, p2 = b;
        int mid = n;
        while (mid > 1)
        {
        	mid /= 2;
            if ((p1 <= mid && p2 > mid) || (p1 > mid && p2 <= mid))
            {
            	mid *= 2;
                break;
            }
            else if (p1 > mid && p2 > mid)
            {
            	p1 -= mid;
                p2 -= mid;
            }
        }
        
        int answer = GetMinExponent2(mid);
        return (answer == 0) ? 1 : answer;
    }
    
    static int GetMinExponent2(int num)
    {
    	int cur = 1;
        int count = 0;
        while (cur < num)
        {
        	cur *= 2;
            count++;
        }
        return count;
    }
}
  • 풀이는 했는데 아마 더 간단하게 푸는 방법이 있을 것 같아서 좀 더 고민해봐야겠다!



오늘은 진짜 칼퇴다.
여기까지~~~

0개의 댓글