이번 코드트리에서 여름방학 조별과제 이벤트가 열려 학교 소속으로 참여하게 되었다.
1주차이기 때문에 진단평가 결과와 가볍게 시작한 코딩 공부 현황을 적어보겠다.
> 진단평가
코드트리의 꽃이라고 생각이 든 진단평가이다.
내가 느끼기에는 실제 코딩테스트와 비슷한 느낌의 문제풀이가 평균 20분 진행되는데,
쉬운 문제는 10분, 비교적 어려운 문제는 20분의 제한시간이 존재하다보니
편하게 보는 시험임에도 불구하고 은근 긴장이 되었던 것 같다.
알고리즘을 혼자서 공부한지 벌써 2년이란 시간이 흘러 현재 내 실력을 판단 해야겠다는 생각에
첫 진단평가를 바로 진행했다.
세상에 dp에서 넘어져버렸다...
dp 이전 개념까지는 문제를 봤을 때 어느정도 생각나는 유형이 정해져 있다보니 바로바로 풀 수 있었지만
dp나 그리디 같은 기본적인 접근은 같지만 그 아이디어를 추론해내는 이후 과정이 다양한 유형을 만나게되니
얼을 타다가 넘어지고 말았다.
> 코딩 공부
결과에 살짝 충격을 먹었지만, 나의 현재 부족한 부분을 알게 되었으니 바로 코딩 공부를 시작했다.
# dp
1. n x n 판 이동하기 (실버1) - https://www.codetree.ai/problems/move-nxn-plates/description
문제
n x n 크기의 판에 숫자가 적혀있습니다.
왼쪽 최상단에서 출발하여 현재위치에 적혀있는 숫자만큼 오른쪽이나 아래쪽으로 이동하여 오른쪽 최하단에 도달하는 과정을 거친다고 할 때, 이동할 수 있는 경우의 수를 출력하는 프로그램을 작성해보세요.
입력
4
2 1 3 3
3 3 1 3
1 2 1 1
3 2 1 0
결과
3
제출 결과
코멘트
- 진단평가에서 아깝게 못푼 문제가 아른거려서 풀어 본 문제이다.
- 오른쪽 혹은 아래라는 방향이 정해져 있다보니, 어느 한 위치로 이동할 때 직전 코스를 무조건 한 번 거쳐서 꺾어야 된다는 점을 생각해서 풀면 된다.
2. 최대 가치 (골드5) - https://www.codetree.ai/problems/max-value/description
문제
n 개의 물건 각각의 무게 w와 가치 v 정보가 주어집니다.
이 물건들 중 일부를 골라 상자에 넣을 때, 총 무게가 상자의 용량 k를 넘지 않으면서 가치의 합을 최대화하고자 합니다. 이때, 가치의 합의 최댓값을 구하는 프로그램을 작성하세요.
입력
4 10
2 10
3 20
4 30
5 40
결과
70
제출 결과
코멘트
- 새로운 물건 조합을 만들때 이미 만들어진 특정 무게당 최대 가치를 내는 조합을 활용하는 방안을 생각해서 풀면 된다
먼저 문제은행에서 무작정 풀어보고 싶은 문제를 두 문제 풀게 되었다.
하지만, 이런 공부 방식은 타 문제풀이 사이트 사용과 별다를 다가 없다는 생각이 들어
이번 여름방학 조별과제의 이점인 모든 학습하기 과정이 오픈된다는 점을 활용하기로 하였다.
먼저 dp를 손대봤기 때문에 사실상 싱크빅 양대산맥이라고 생각해 온 그리디에서 먼저 활용하여 공부를 시작했다.
# 그리디
비록 현생 일정 때문에 많은 시간을 쏟지는 못 했지만, 최대한 따라가본 뒤 느낀 점은
처음 알고리즘을 시작한 사람 혹은 기억이 희미해져 복습이 필요한 사람에게 적합한 방식이라는 점이다.
다양한 그리디의 유형을 설명해주고 각 대표 문제 하나씩 풀어보는 방식이다보니 이전 기억을 되살리는 데 도움이 되는 것 같다.
> 다음 주 계획
1. 그리디 마무리
2. DP 1, DP 2 마무리
3. 진단평가 재실시
'알고리즘 메모' 카테고리의 다른 글
[코드트리 조별과제] 6주차 레포트 (0) | 2024.08.25 |
---|---|
[코드트리 조별과제] 5주차 레포트 (0) | 2024.08.17 |
[코드트리 조별과제] 4주차 레포트 (0) | 2024.08.11 |
[코드트리 조별과제] 3주차 레포트 (0) | 2024.08.04 |
[코드트리 조별과제] 2주차 레포트 (0) | 2024.07.28 |