이번 문제는 자료구조의 배열을 활용해 해결할 수 있는 문제이다.
# 문제 해결
입력인 k층, n호의 인원 수는 관찰을 기반으로
연산 방법을 구조화시켰다.
코드로 작성은 배열의 2차원 배열을 활용해
row가 k, col은 n인 2차원 배열은 선언했다.
(0, 0) (1, 0) (2, 0) - - - 공간에는 "1"을 채웠다.
(0, 0) (0, 1) (0, 2) - - - 공간에는 호실 숫자만큼 채웠다.
정리하면, 문제 & 조건에 따라 확정된 정보를 정리하였다.
k층의 n호의 인원은
k-1층의 1호 ~ n호의 합과 같다.
즉, k층 n-1호 + k-1층 n호의 합이 k층 n호의 인원으로 추론할 수 있다.
(그러한 연산 방법으로, k층 n호의 인원을 구하기 위해
2차원 배열로, k층 n호의 인원을 구하였다.)
마치며
오랜만에 백준 사이트에 접속하여 문제를 풀어보았다.
브론즈 1 문제임에도, 생각보다 많은 시간을 소비하여 해결하였다.
그리고, 이 문제를 풀어보며 깨달은 바가 있어서 해당 포스팅을 작성했다.
# 백준의 의미
백준 문제를 풀어내기 위해선, 사고에 따른 문제 해결보다, 사고에 대한 문제해결 방법을 제안하고 그에 따른 방법을 코드로 구현하는 능력을 요구한다.
다시 말해, 수학 공식으로서 문제 해결을 요구하는 것이 아닌,
추론된 수학 공식을 코드 구현을 함으로서의 문제 해결을 요구한다.
# 백준 문제들을 효과적으로 풀어내고 익히기 위해선?
코드로 구현되는 전략인 "자료구조"에 대해서 깊이있게 학습을 진행한 후,
백준 문제풀이를 진행해보는 것이다.
이번 백준문제 풀이의 경험으로, "자료구조"에 대한 깊이있는 학습을 하지 않고
백준을 많은 나날들 풀어봐도, 추상적으로 정의된 코드를 여러번 작성해본 경험으로 그칠 것임이 틀림없다.
따라서, "자료구조"에 대한 깊이있는 학습을 하여, 추상화된 코드를 개념적으로 의식화하고 백준 문제를 해결하며
의식화된 개념으로 특정한 상황에 대한 문제 해결을 수행할 수 있는 사람으로서 성장할 수 있도록 노력해야된다는 사실을 깨달았다.
정리해서, 앞으로 백준 문제를 풀어보기 전에, "자료구조" 기반을 지닐 수 있는 개인 학습을 진행해볼 것이고,
학습된 "자료구조" 개념으로 백준 문제의 특정한 상황들에 적용하여 의식적으로 문제를 해결하고 상황들을 익힐 수 있는 사람으로서 성장하도록 노력할 것이다.
'📚 스터디 > 알고리즘' 카테고리의 다른 글
[백준 15829번] Hashing (0) | 2023.07.10 |
---|---|
[백준 2798번] 블랙잭 (0) | 2023.07.09 |
[백준 2331번] 분해합 (0) | 2023.07.09 |
[백준 1978번] 소수 찾기 (0) | 2023.07.08 |
[백준 1018번] 체스판 다시 칠하기 (파이썬) (0) | 2023.03.31 |