TIL(Today I Learned)

텍스트 RPG 게임 : 팀 프로젝트 발표 - TIL#18

Najdorf 2024. 1. 17. 21:05
728x90

 

오늘의 알고리즘 오류 상황

 

[나누어 떨어지는 숫자]

문제: array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.

 

public class Solution
{
    public int[] solution(int[] arr, int divisor)
    {

        int count = 0;
        foreach (int element in arr)
        {
            if (element % divisor == 0)
            {
                count++;
            }
        }

        int[] answer = new int[count];

        count = 0;
        foreach (int element in arr)
        {
            if (element % divisor == 0)
            {
                answer[count] = element;
                count++; //요게
            }
            // 요기있어서 인덱스 OutOfRange 오류남;;
        }

        if (answer.Length > 0)
        {
            for (int i = 0; i < answer.Length; i++)
            {
                for (int j = i; j < answer.Length; j++)
                {
                    if (answer[i] > answer[j])
                    {
                        int temp = answer[i];
                        answer[i] = answer[j];
                        answer[j] = temp;
                    }
                }
            }
        }
        else
        {
            answer = new int[1];
            answer[0] = -1;
        }

        return answer;
    }
}

 

인덱스 OutOfRange 에러가 계속 발생해서

분명 알고리즘 상으로는 문제가 없을 거라고 생각해서

눈 다시 뜨고 코드를 읽어봤더니

 

count++ 하는 부분이 if문 밖으로 나와있었다.

(상단에 주석 처리 된 부분)

 

사실 List를 활용하면 저런 선언부와 값 할당부를 따로 나눌 필요가 없지만

문제의 의도는 배열을 활용하는 게 아닐까? 라는 생각이 들어

끝내 배열을 활용해 해당 문제를 해결했다.


팀 프로젝트 회고

 

 

느낀 점

 

처음에는 작성된 코드를 이해하는 것조차 버거웠지만, 계속되는 팀원과의 협업을 통해 모르는 점을 서로가 도움이 되며 배워갈 수 있어서 좋았습니다. 그동안 궁금했던 클래스 별로 파일을 나누어 프로젝트를 만드는 법, 각 클래스끼리의 통신 방법 등을 알 수 있었고, C# 문법에 대해 미숙한 부분을 깨닫게 되며 보완해나가는 경험을 할 수 있었습니다.

 

협업에 있어 소통하는 방법도 여럿 배웠습니다. 코딩을 할 때 팀원이 이해할 수 있도록 충분한 주석과 설명이 뒷받침되어야 원활한 소통이 됨을 분명히 깨달았습니다. 프로젝트를 진행한 근 일주일 간 역할 분담, 그리고 적극적으로 Git을 사용하는 방법을 익힐 수 있었습니다.

 

프로젝트를 진행하며 여러 어려움이 존재했던 것은 사실이나, 이 어려움을 함께 극복해나가며 새로운 사실을 배울 수 있었다는 점은 굉장히 흥미로운 경험이었습니다. 프로젝트를 제출하고 마무리 지을 때, 완성된 결과물을 보며 다 함께 이와 같은 결과물을 만들 수 있었다는 사실이 정말 보람찼습니다.

 

 

앞으로의 각오

 

개발 실력에 부족한 부분을 보완하며 성장하도록 노력하겠습니다. 협업 시 소통에 문제 없는 적극적인 팀원이 되도록 노력하겠습니다.

 


하루 동안 느낀 점

 

오늘 팀 프로젝트 발표를 들으면서

많은 팀들이 상당한 퀄리티로 개성 넘치는 프로젝트를 진행했다는 것을 알게 되었다.

 

그에 비해 우리 팀의 결과물이 약간(?)은 컨셉과 규모에 밀렸다는 생각도 하기는 했으나,

우리 팀의 목적은 '확장성이 좋은' 코드를 만들기 위해 집중했고,

 

해당 목표를 달성했다는 생각이 든다.

그래서 팀원과의 협업으로 일궈낸 첫 번째 완성된 프로젝트기에

굉장히 뿌듯함을 느꼈다.

 

 

 

 

 

그리고

땅콩은 견과류가 아니다...

728x90