파란색 : 풀면서 어려웠던 부분 or 고려해야 될 부분
빨간색 : 해결방법
초록색 : 느낀점
문제
우선 문제를 봤을 때 고려할 부분으로는
첫 번째로, 여벌은 1개이기에 중복적으로 빌려줄 수 없도록 해야한다.
두 번쨰로는 잃어버린 학생과 여벌로 가져온 학생이 같을 수 있다. (당연히 여벌은 1개라 빌려줄 수 없다.)
내 풀이
잃어버린 학생배열과 여벌을 가져온 학생배열을 list로 옮긴 후 두 배열을 비교하여 중복된 값을 구한다.(두 번째 고려사항)
마지막 foreach문에서 빌려줄수있는 학생배열을 순회하면서 빌려준 학생은 다시 빌릴 수 없도록 삭제시켜주고 있다.(첫 번째 고려사항)
다른 사람의 풀이
우선 차이점으로 중복된 값을 걸러내기위한 반복문을 사용하지않고 Linq기능을 사용하여 lost, reserve배열 서로 중복되지 않는 값만 입력받았도록 하고있다.
Linq기능을 사용하면 간결하고 연산 횟수가 줄지만, 가비지가 생성하기에 게임을 개발에 사용하기에는 적절하지 않다.
'알고리즘자료구조 > 알고리즘문제' 카테고리의 다른 글
프로그래머스_C#)두 정수 사이의 합 (0) | 2019.08.28 |
---|---|
프로그래머스_C#)가운데 글자 가져오기 (0) | 2019.08.27 |
프로그래머스_C#)모의고사 (0) | 2019.08.22 |
05.09_CodeSignal(윈도우 폴더형식,중복 문자열 체크하기) (0) | 2019.05.09 |
05.07_CodeSignal(특수문자,띄어쓰기 제외하기) (0) | 2019.05.07 |