재귀 파이썬 문제 삼각달팽이 프로그래머스 코딩테스트 (6)
·
IT, Digital
목차서론지난번 포스팅에 이어 이번에는 난이도가 있는 재귀 문제를 풀어보고자 한다. 삼각달팽이라는 문제로 프로그래머스에 있다. 문제 제목과는 다르게 예시부터 난이도가 있어보이는 생김새다. 아무튼 이번 포스팅에서는 해당 문제를 풀어보고 그 과정에 대해서 얘기하고자 한다. 설령 못풀어도 다른 사람 풀이 참고하는 한이 있어도 어떻게서든지 풀어볼 예정이다. 재귀 문제 다른 사람 풀이 분석풀이 방법을 엄청 생각해봤으나 도저히 재귀로 풀리지가 않아 다른 사람 풀이를 검색해봤다. 아니나 다를까 재귀로 푼사람은 거의 없었고, 재귀로 풀었다는 사람 보면 되게.. 복잡했다. 재귀 강의에서 for문과 재귀는 서로 왔다갔다할 수 있지만, 코드 복잡도와 돌아가면서 생기는 불필요한 메모리의 등가교환이라고 말했는데(내가 의역함ㅋㅋ...
중국 여행을 위한 준비 (1) 큰 그림
·
여행
목차  서론홍콩 여행 포스팅을 넘어 중국 여행을 위한 준비를 차근차근 하고자 한다. 홍콩 여행과는 다르게 그냥 미리미리 준비하는 과정을 담고자 한 것임. 그래서 이번 포스팅에서는 총 정리와 같은 느낌으로다가, 큰 그림을 계획해보고자 한다. 참고로 레이오버, 스톱오버 주의사항과 관련된 포스팅은 여기에 있다.하고 싶은 거 정리아직 몇박 며칠을 할 게 아니라 가고 싶은 곳 생기면 + 일정 정해지면 위치에 맞게 재배치해서 다시 일정 계획 포스팅을 추가할것임.할일비고자전거 타기그냥 qr 있으면 찍고 파란색 버튼 누르면 빌려진다고 한다.카카오 바이크처럼 밑에 내리면 반납됨.난징동루 wangkai photo studio 난징동루에서 치파오 입고 사진 -> 3만원 양스덤플링(yang's dumpling) - 만두집인데..
재귀 파이썬 문제 종이자르기 프로그래머스 코딩테스트 (5)
·
IT, Digital
서론지난번엔 BFS에 대해서 알아보았다. DFS도 알아보아야 하지만.. 다음주에 문제 풀고 DFS할 예정임. 아무튼 오늘은 재귀에 대해서 알아본 뒤, 직접 문제를 몇개 더 풀어보고자 한다. 사실 재귀보단, DP가 더 자주 출제된다. 하지만 DP를 하기 위해서는 재귀를 충분히 알아야 된다고 한다. 그래서 재귀를 몇문제 더 풀어보고 다음주에 DP로 넘어갈것임.간단한 재귀 이론영상에서 본 재귀 이론을 간단하게 언급하고자 한다. 재귀와 반복문은 서로 왔다갔다할 수 있다고 한다. 다만 재귀는 보긴 좋지만 소모하는 시간이 많으므로 애지간하면 반복문에서 해결하라고 한다. 자신을 여러번 호출하는데 이게 굉장히 비효율적이기 때문이다. 이후 DP에서 해소할 수 있는 무언가를 하는데 이건 재귀에 익숙해진 뒤 들어가는게 맞다..
BFS Python 문제 BOJ2178 코딩테스트 (4)
·
IT, Digital
서론지난 포스팅에서는 BFS를 이용한 개념과 문제를 풀어보았다. 이번 포스팅에서도 백준 BFS 문제인 BOJ2178을 풀어보겠다. 이전과 같이 처음에는 내가 어떻게 풀었는지 적을 것이고, 이후에는 답지를 참고해서 내 것과 비교할 예정이다. BOJ 2178 내가 푼 풀이과정 및 코드 문제를 보니 최단거리를 찾는 것이다. BFS를 택했다.(사실 BFS 영상에 나온거라 뇌빼고 BFS로 바로 들어가도 되지만 이렇게 접근하는 연습을 하는게 맞다고 판단함.) 최단 경로를 어떻게 접근할까 했다. BFS를 돌며 내가 지나는 칸이 1이면 -> 이전칸 +1을 하고 0이면 안지나 가는 가장 기본적인 툴을 생각했다. 그런데 1도 0도 아닌 값을 만났을 때를 고려해야됐다. 때문에 1이 아닌 칸을 만나면 -> 해당 값과 +1한 ..
BFS Python 문제 BOJ1926 코딩테스트 (3)
·
IT, Digital
서론지난번엔 BFS 개념에 대해 포스팅을 했다. 이번에는 BFS를 이용해 문제를 풀어보고자 한다. 원래 이 포스팅에서 여러가지 풀이를 남길 생각이었으나, BFS는 하나도 벅차다. 때문에, 이 포스팅에서는 백준 BOJ1926만 풀어보도록 하겠다.백준 BOJ 1926 문제 풀이 (내풀이)내가 1926 문제를  푼 과정은 다음과 같다. 1) 너비를 알아야 됨 -> 주변부 탐색 BFS 사용. 2) 총 drawing의 개수 -> 시작점이 하나가 아니기에 모든 그래프를 훑는 for문을 만들고 + 새로운 시작점이 나올때마다 체크하는 변수 필요 3) 새로운 시작점이 생기면 그 때 while queue: 문을 도는것이니 for문 안에 while문 넣기. 4) 마지막에 max값과 현재 너비 비교 후 갱신. 해서 풀은 코드..