코딩테스트를 마지막에 봤다. 역시나 못풀었다. 평소 배열을 쓰지 않고 F#에 가깝게 코딩을 하다보니 떨어진듯 싶다. 집에서 그냥 맥주에 감자칩 먹으며 천천히 풀어보도록 해야 겠다.
컴퓨터 공학 출신이 아니라면 코딩테스트는 힘이 드는듯 싶다.
리스트가 아니라 배열로 풀어야 하고 for문을 4개를 쓰는 방법이라고 했었다. 그런데 일단은 List가 익숙하니까 이걸로 풀어야 겠다.
5x5 상자에 3x3 상자를 한칸씩 옆으로 이동하면서 곱하는 문제이다. 그리고 합을 도출하면 된다. 문제를 이렇게 말하면 이해가 어려우니 다 만든 다음에 보여 주어야 할듯 싶다.
비교하는 3x3 상자를 객체로 만들자.
이게 그냥 for문이 네개가 나와야 한다는데 이렇게 바로 풀기에는 인간의 머리로 이해가기가 쉽지가 않다. 그래서 객체 단위로 나누어야 할듯 싶다.
3x3 박스는 3줄짜리가 있는거고 5x5 박스는 4줄 짜리가 있는 거다. 벡터2 라인 박스 이렇게 상위 객체로 묶어내는 방식이다.
요렇게 묶어 내는 건데 사실 이게 문제의 의도는 아니였다.
라인 클래스만 있어도 되고 박스클래스는 필요없을듯 싶다. 원래는 이렇게 풀려고 했는데 옆에서 문제의 의도는 리스트를 쓰는게 아니라 배열을 쓰는 거라고 하더라.
이제 간단하게 3x3과 5x5에 3x3의 곱을 구하는 걸 만들도록 한다.
그냥 풀자. 어차피 답만 맞으면 된다.
문제가 이런식으로 각 x y를 비교해서 곱하는 형식으로 되어 있다.
사실 이건 컴포넌트를 사용해서 푸는게 더 편할듯 싶긴 하다.
먼가 에러가 뜬다.
잠깐만 조금 생각해 보자.
이렇게 하면 될듯 싶다.
432가 나온다.
중간 객체를 만드는게 핵심인듯 싶다.
https://github.com/aigoia/UnityTest/tree/main/Assets/FailTest
쫑이다.
'프로젝트' 카테고리의 다른 글
이번주 쉽지 않았다 (0) | 2023.05.18 |
---|---|
컴포넌트 패턴을 사용해서 (0) | 2023.05.18 |
큰 실수를 했네 (0) | 2023.05.16 |
포트폴리오 (0) | 2023.05.15 |
지하철은 병균에 온상이다 (0) | 2023.05.14 |
WRITTEN BY