[C++]BOJ 1697 - 숨바꼭질
bfs로 n + 1
, n - 1
, n * 2
의 경우를 계속 탐색해나가며 동생의 위치에 가장 먼저 도달한 경우의 횟수를 출력하면 된다.
트리를 그려보면 알겠지만 중복되는 경우가 자주 등장해서 메모이제이션을 사용하지 않으면 메모리 초과가 뜬다.
방문을 저장할 배열 하나를 만들어준다.
bfs로 n + 1
, n - 1
, n * 2
의 경우를 계속 탐색해나가며 동생의 위치에 가장 먼저 도달한 경우의 횟수를 출력하면 된다.
트리를 그려보면 알겠지만 중복되는 경우가 자주 등장해서 메모이제이션을 사용하지 않으면 메모리 초과가 뜬다.
방문을 저장할 배열 하나를 만들어준다.
익은 토마토의 위치를 전부 큐에 넣고 bfs를 돌린다.
익혀진 토마토의 배열 위치에 익혀진 날짜의 값을 저장한다.
지도를 배열에 저장하고 칸별로 분기를 돌며 집이 있는 칸을 만나면 인접한 집들을 탐색한다.
위 과정을 반복해 단지를 나누고 집의 수를 벡터에 저장한 후 정렬해 출력한다.
bfs dfs 두 방법 모두 다뤄보겠다.
각 칸에서 이동할 수 있는 칸으로 탐색해나가 도착점에 도달하면 그 이동 거리가 최소 거리가 되므로 bfs를 사용하면 빠르게 해결할 수 있다.
dfs로도 해결할 수 있지만 한번 방문한 칸은 다신 방문하지 않는 bfs와는 다르게 모든 경로를 탐색하므로 작동시간이 다소 오래걸린다.
두 방법 모두 다뤄보겠다.
네이버 영화 페이지에서 현재 상영중인 영화와 정보들을 가져오고 각 영화에 달린 댓글들도 가져오는 파이썬 크롤러를 만들어 봤다.
모듈은 requests와 beautifulsoup4를 사용했다.
requests로 HTTP요청을 보내고 beautifulsoup4는 html구문을 분석할 때 사용했다.
마지막으로 크롤링이 끝난 후 csv형식으로 내보낸다.
if 후에 여러개의 elif가 있을 수 있고 else는 선택적으로 사용할 수 있다.
1 | "Please enter an integer: ")) x = int(input( |
+, -, *, / 같이 사칙연산 연산자를 사용할 수 있다.
괄호는 연산의 우선순위를 정할 때 사용한다.
1 | 2 + 2 |