프로그래머스 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));
다시 한번 코드를 살펴보며 테스트 한 결과 원본 리스트의 값들은 고정되어 있어야 하는데 리스트의 값을 계속 바꿔주고 있었다
그래서 미리 만들어뒀던 리스트는 그대로 두고 새로운 리스트에 만들어서 복사를 해주었더니 해결되었다
'TIL' 카테고리의 다른 글
[TIL] 내일배움캠프_Unity 알고리즘(3진법 뒤집기), 팀 과제 마무리 (0) | 2023.09.01 |
---|---|
[TIL] 내일배움캠프_Unity 알고리즘(최대공약수, 최소공배수),팀과제 (0) | 2023.08.31 |
[TIL] 내일배움캠프_Unity 팀 과제(feat. git cash 삭제), 좋은 개발자의 비밀 특강 (0) | 2023.08.29 |
[TIL] 내일 배움 캠프_Unity 팀 과제 (0) | 2023.08.28 |
[WIL] 내일배움캠프_23.08.21~23.08.27 3주차 (1) | 2023.08.27 |