목록2020/04/25 (2)
훈훈훈
이번에는 탐색 문제 유형 중 하나인 봉우리 개수 찾는 문제에 대하여 정리를 해보려고 한다, 문제는 다음과 같다. > N*N 격자판이 주어지고, 각각의 격자에는 높이가 들어가 있다. 각 격자를 기준으로 상하좌우를 비교했을 때 가장 큰 높이가 봉우리일 때, 봉우리 개수를 구하라. (단 격자판의 가장자리는 모두 0으로 초기화 한다.) # 접근 방법 위 그림과은 3*3 행렬이 주어진 후, 격자판 가장자리를 0으로 초기화 했을때의 그림이다. 2차원 배열을 탐색하는 문제이기 때문에 이중 for문으로 2차원 배열을 탐색한다. 배열의 각 요소를 탐색하면서 상하좌우로 크기 비교를 진행한다. 만약 matrix[i][j] 를 탐색한다고 했을때, matrix[i+1][j] matrix[i-1][j] matrix[i][j+1]..
이번에는 탐색 유령 중 하나인 너무 유명한 괄호 문제에 대하여 정리해보려고 한다. 문제는 다음과 같다. > 괄호로 이루어진 문자열이 주어지고, 짝이 맞으면 YES, 틀리면 NO를 반환, (단, 문자열의 길이는 6으로 가정한다.) # 접근 방법 접근 방법은 위 그림과 같다. 먼저 주어진 문자열의 처음 길이를 저장 후, 반복문을 돌려 짝이 맞는 괄호를 발견하면 공백으로 제거해주는 작업을 반복한다. 그 다음 처음 문자열 길이와 나중 문자열 길이를 비교 후 YES, NO를 판별한다. # 풀이 def check_func(values): answer = [] str_list = ['[]', '{}', '()'] # 인자로 받은 문자열로 이루어진 리스트 탐색 for element in values: first = 0..