[우테코 프리코스/7기] 프리코스 1주 차 회고
·
Programming
1주 차를 요약하자면 잘해보려고 이것저것 해보다가 말아먹은 상황인 것 같다.기본기가 바탕이 되고 확장을 해야 한다는 말이 정말 뼈저리게 와닿았다.다만, 실수를 해보니 많은 것을 깨달았고 이를 반면교사 삼아서 2주 차에선 더욱 노력해보려고 한다.목표 설정프리코스 미션을 처음 받았을때 느낀 점은 생각보다 제작해야 하는 기능이 어렵지 않았다는 것이었다. 그래서 주어진 학습 목표에 우선 충실하고자 하였다. 나의 1주 차 목표는 우테코에서 제공하는 가이드에 대해서 잘 인지를 하고, 구조적으로 역할이 잘 분리된 근거 있는 코드를 짜는 것이었다. 그래서 아래와 같이 단계를 세웠다. 요구사항 파악하기진행 순서도 및 구현할 기능 목록 작성해보기근거 있는 코드 작성하기리뷰 및 회고하기요구사항 파악하기그냥 미션만 잘 수행하..
백트래킹(Back Tracking)
·
Algorism(PS)/알고리즘 정리
백트래킹 이란? 완전 탐색을 하던 도중, 현재의 탐색이 무의미한 경우 되돌아가는 알고리즘을 의미한다. 말 그대로 모든 경우의 수에 대해서 탐색을 하던 도중, 조건과 맞지 않을 경우에 대해서는 탐색을 하지 않고 돌아간다는 뜻이다. 유명한 문제로 N-Queens 문제가 존재한다. 특징 모든 경우의 수를 탐색하지 않기 때문에 완전탐색보다 시간적으로 효율적이다. 탐색 중 조건에 맞지 않는 경우 이전 과정으로 돌아가야 하기 때문에, 재귀를 사용해야 하는 경우가 많다. 조건에 맞지 않는 다면, 이전의 어떤 지점으로 돌아갈 지 정하는 것이 중요하다. 가지치기를 어떻게 구성하느냐에 따라 코드의 효율이 달라진다. 주로 백트래킹을 구현하다 보면, void함수와 전역 변수를 쓰면 쉽게 풀리는데 이는 다른 알고리즘에서 자중하..
C언어에서 선언된 배열 값외의 배열 주소에 접근이 가능할까?
·
Programming/C
군대에서 C언어를 복습하다가 포인터와 배열의 관계에 대해 궁금한점이 생겨서 한 번 알아보았다.궁금한 점은 사진에 나와있는 코드를 실행해보고 생겼는데, '어째서 존재하지 않을 int arr[2][0]의 주소(메모리)에 접근이 가능한가?' 였다. 그리고 '접근이 가능하더라도 왜 그 값은 쓰레기 값이 아닌, int arr[1][1]의 주소에 4바이트를 더한 정상적인 주소값이 나오는지' 가 궁금했다. 이 결과를 보고 왜 그런지 알아보기 위해, 일단 sizeof 연산자를 이용해보았다. 하지만, 배열의 크기는 16바이트로 정상적인 값이 나왔다. 그리고 int arr[3][0]이나 다른 주소값에도 접근을 해보았지만 에러만 발생했다. 아는대로 왜 그런지 알아보려고 했지만 알 수 없어서 질문을 한 결과. 《 int ar..