TIL

[TIL] 내일배움캠프_Unity 프로그래머스 내적, 팀 과제 버그 수정

Hwone 2023. 8. 30. 21:03

프로그래머스 LV.1 내적 

매일 아침 1시간 동안 알고리즘 코드카타를 진행하면서 새로운 기술을 알게 되면 작성하고자 한다 

before
public int solution(int[] a, int[] b)
{
	int answer = 0; 

	for(int i = 0; i<a.Length; i++)
	{
		answer += a[i] * b[i];
	}
	return answer;
}

after
public int solution(int[] a, int[] b)
{
	return a.Zip(b, (t1, t2) => t1 * t2).Sum(); 
}

정수 배열 a와 b의 내적을 return 하는 내용인데 풀이 자체는 어렵지 않았는데 다른 사람들은 어떻게 풀었는지 궁금해서 찾아본 결과 Linq의 Zip 메서드를 통해 한줄로도 풀 수 있었다 

Linq의 Zip 메서드는 지정된 함수를 두 시퀀스의 해당요소에 적용하여 결과 시퀀스를 만드는 역할로 람다를 사용하면된다 

 

팀과제 버그 수정 
노멀 난이도 전투 스테이지를 재 입장하면 이지 난이도 몬스터가 나오는 버그를 발견했다 

before
NormalMonsters = CreateRandomMonsterLineup(NormalMonsters, 3);
NormalMonsters.AddRange(CreateRandomMonsterLineup(EasyMonsters, 2));

After
List<Monster> monsters = CreateRandomMonsterLineup(NormalMonsters, 3);
monsters.AddRange(CreateRandomMonsterLineup(EasyMonsters, 2));

다시 한번 코드를 살펴보며 테스트 한 결과 원본 리스트의 값들은 고정되어 있어야 하는데 리스트의 값을 계속 바꿔주고 있었다 
그래서 미리 만들어뒀던 리스트는 그대로 두고 새로운 리스트에 만들어서 복사를 해주었더니 해결되었다