2024-02-17
오늘은
- 업랜디 한판 ✅ 2024-02-17
- 프로그래머스 DFS/BFS 퍼즐조각 문제 해결하기
- 이분탐색 단계 해결하기
- SQL 강의 듣기
- 서울 -> 전주로 귀환 ✅ 2024-02-18
오늘은 드디어 서울에서 전주로 복귀 !
시간이 약간 부족하다. 두통도 어제부터 있어서 휴식을 좀 했다..
프로그래머스 킷은 거의 끝났는데, 복습 + SQL + 마음의 안정을 위한 복습까지 생각하면 .. 최대한 열심히 해야겠다.
오늘의 업랜디
1614 영식이의 손가락 (실패 후 해결 - 수학)
오늘의 프로그래머스
깊이 우선 탐색(DFS/BFS) -
퍼즐 조각 채우기 (Lv. 3)
영식이의 손가락
영식이의 손가락 문제는 한손만을 이용해서 손가락을 접었다 펴며 숫자를 세는 영식이가 n번째 손을 다쳐서 k번밖에 사용하지 못할 때, 총 셀 수 있는 숫자의 크기를 구하는 문제다.
처음엔 간단하게 브루트포스로 구현하려고 했지만, 대충 봐도 입력 사이즈가 TLE가 날 수 밖에 없었다.
결론적으로, 수학식을 이용해서 푸는 문제였다. 수학식을 도출하는 과정이 너무 어렵다. 이럴 때 최선의 방법은 각 케이스를 나열해놓고 패턴을 찾는 것 인듯...
#include <iostream>
using namespace std;
int main() {
long long hurt_finger, possible_count;
std::cin >> hurt_finger >> possible_count;
if (hurt_finger == 1)
cout << possible_count * 8;
else if (hurt_finger == 5)
cout << possible_count * 8 + 4;
else if (hurt_finger == 2)
cout << 1 + 6 * ((possible_count + 1) / 2) + 2 * (possible_count / 2);
else if (hurt_finger == 3)
cout << 2 + possible_count * 4;
else if (hurt_finger == 4)
cout << 3 + 2 * ((possible_count + 1) / 2) + 6 * (possible_count / 2);
}
퍼즐 조각 채우기
퍼즐 조각 채우기는 프로그래머스의 깊이/너비 우선 탐색(DFS/BFS) 마지막 문제로, 퍼즐 맵과, 테이블 위에 놓여져있는 퍼즐의 정보가 주어지면, 맞춰 넣을 수 있는 퍼즐의 수를 구하는 문제다.
구현해야 할 기능이 다양하고 복잡해서 쉽지만은 않은 문제이다.
KTX타고 전주로 내려가는 길에 몇가지 기능을 구현했다
- 주어진 맵, 테이블 정보(0, 1)을 좌표계로 변환하는 함수 ✅ 2024-02-17
- 주어진 퍼즐 좌표를 Absolute value(절대값)로 변환하는 함수
오늘은 시간 부족(24시)로 여기까지 하겠다. 어제 오늘 컨디션이 안 좋았고, 일정과 지역 이동이 있어서 공부에 쉽게 집중할 수 없었다. 2월 18일(내일)은 더 많은 학습을 할 것이다.
최종 평가
2024-02-17 학습 평가
오늘의 학습 성과:
- 업랜디 문제 해결
- 프로그래머스 DFS/BFS 퍼즐 조각 문제 접근
- 이분탐색 및 SQL 강의 계획 수립
학습 성취:
1. **영식이의 손가락 문제 해결**: 수학적 접근을 통해 문제를 해결함으로써, 복잡한 문제에 대한 수학적 사고의 중요성을 인식했습니다. 패턴을 찾아내고 이를 일반화하는 과정에서 수학적 사고력을 활용한 점은 높이 평가됩니다.
2. **퍼즐 조각 채우기 문제 접근**: 복잡한 문제에 대한 접근 방식을 구상하고, 구현할 기능을 단계별로 계획하여 접근한 점이 인상적입니다. 이는 문제 해결 과정에서 체계적인 사고와 계획을 통해 접근하는 능력을 보여줍니다.
3. **학습 계획 및 시간 관리**: 지역 이동과 개인 일정에도 불구하고 학습을 지속한 점에서 긍정적인 평가를 받습니다. 하지만, 계획한 SQL 강의 학습에 대한 구체적 진행 사항이 보고되지 않아, 이 부분은 아쉬운 점으로 남습니다.
평가 및 피드백:
오늘의 학습은 개인 일정과 지역 이동이 있음에도 불구하고, 중요한 문제 해결에 집중하고, 새로운 문제에 대한 접근 방식을 모색한 점에서 긍정적입니다. 특히, 영식이의 손가락 문제를 해결하며 수학적 사고를 발휘한 점은 탁월한 성과입니다.
다만, 계획했던 SQL 강의 학습에 대한 진행 상황이 보고되지 않은 점은 아쉬움으로 남습니다. 학습 계획을 세울 때는 실제 학습에 할당할 수 있는 시간과 자원을 고려하여 현실적인 계획을 세우는 것이 중요합니다.
학습 성과 평가 점수: 70/100
- 영식이의 손가락 문제 해결과 퍼즐 조각 채우기 문제에 대한 접근은 긍정적인 평가를 받았지만, 전체적인 학습 계획의 실행에 있어서 SQL 학습 부분이 미흡하여 점수가 감점되었습니다.
향후 개선 방안:
- 학습 계획을 수립할 때는 일정과 가능한 학습 시간을 고려하여 계획을 세우고, 학습의 우선순위를 명확히 정하는 것이 중요합니다.
- 다양한 학습 목표 중에서도 핵심적인 학습 내용에 집중하며, 계획한 학습 내용을 체계적으로 실행해 나가는 것이 중요합니다.
- 학습 진행 상황을 주기적으로 검토하고, 필요한 경우 학습 계획을 조정하여 학습 효율을 최대화할 수 있도록 합니다.
'일일 스터디노트' 카테고리의 다른 글
240219: SQL SELECT 집중 학습, JOIN 이해, 최후의 승자 문제 (0) | 2024.02.19 |
---|---|
240218: 복잡했던 퍼즐조각 맞추기 문제, 조화 평균 (GCD, LCM) - 유클리드 호제법 (0) | 2024.02.18 |
240216: 여행경로 문제 재귀 DFS 해결, 일정 (0) | 2024.02.16 |
240215: Recursive DFS와 Stack DFS의 중요한 차이점. 여행 경로 문제. (0) | 2024.02.15 |
240214: 프로그래머스 DP, BFS/DFS 풀이. LIS 복습 🔥 (0) | 2024.02.15 |