[PS] 221219 백준 문제풀이
[PS]는 문제해결 및 알고리즘을 공부한 내용을 담고 있습니다.
문제는 백준 Online Judge, Leetcode에서 참고했으며, 본문에서는 문제 접근 방식과 새로 배운 내용을 담고 있습니다.
10807. 개수 세기
- comment: 오랜만에 들어갔는데 낮은 단계에 새롭게 생성됐던 문제였다.
scanf
scanf("%d",&N);
- 공백을 기준으로 하여 input을 format 단위만큼 읽어들이고, 그 내용을 N에 저장.
- 정확하게는 ‘&N’이라는 형태의 포인터에 input을 저장
malloc
int* arr = (int*)malloc(sizeof(int)*N);
- malloc을 할 때, casting 사용 여부를 두고
무려2009년에 올라온 글이 있어서 참조해봤다.- 요약하자면 ANSI C standard에서는 이런 casting을 redundant라고 지정했었다. 실제로 해당 게시글에 달린 2014년도의 댓글을 보면 ‘25년 정도 사용한 컴퓨터가 아닌 한’ danger, undefined behavior에 해당하지 않는다고 한다.
- 이런 issue가 있었다는 것 정도만 알아두고, organization policy를 따라가면 될 것 같다.
- 이어지는 5597번 문제에서는 casting 없이 사용했다. 정상적으로 문제를 해결할 수 있었다.
5597. 과제 안 내신 분..?
- comment: 앞서 살펴본 malloc casting을 사용하지 않고 풀었다. 역시나 별 차이는 없었다.