본문 바로가기

코딩테스트

(2)
코딩테스트 전날.. 실수 정리 내일 코딩테스트인데, 새로운 문제 풀기보다는 지금까지 실수를 정리하는 게 좋을 거 같다. # 내가 자주하는 실수 모음 1. 배열 범위 체크 잘 못 하기 ( ex, 0 부터? 1부터? N-1 까지인지 N 까지인지.. 아 쓰면서도 헷갈림 ) 2. 배열 초기화 안하기 ( 테스트 케이스 여러 개 돌릴 때 memset 잘하기, 걍 무족권 해..! ) 3. freopen 쓰고 그대로 내기 4. 변수 같은 이름으로 여러개 선언하기 ( int i, num 조심... ) 5. 조건문 여러 개 쓸 때 순서 잘 생각하기 ( 어떤 조건문이 먼저 와야 하는가.. 종료 조건?? 가지치기 ?? 대부분은 범위 체크가 제일 먼저 와야 함.. ) 6. BFS 돌릴 때 visit 체크는 push 할 때 하기 이 정도인거 같다. 이 외에 ..
[백준 9205] 맥주 마시면서 걸어가기 (C++) DFS, BFS 풀이 # 문제링크 www.acmicpc.net/problem/9205 9205번: 맥주 마시면서 걸어가기 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. www.acmicpc.net 이걸 첨에는 현재 좌표부터 1000m 거리 이내에 있으면 다 해보면 된다고 생각해서 DFS로 짰는데 시간초과가 났다. 사실 편의점의 갯수 n 이 100이니까 그냥 100개의 노드에서 DFS를 돌리면 시간초과는 당연한 결과다. 좌표값들을 정렬한다음에 우선순위로 하면 되지 않을까? 이런 생각도 했었는데, 잘못된 방법이었다. 결론 먼저 말하면, BFS로 풀거나, DFS로 풀때는 이미 방문한 노드를 ..