본문 바로가기
반응형

알고리즘/프로그래머스 level 1,272

[파이썬🐍] 프로그래머스 : 가장 큰 정사각형 찾기 def solution(board): answer = 0 for i in range(len(board)): for j in range(len(board[0])): if (i > 0) and (j > 0) and (board[i][j] != 0): board[i][j] = min(board[i][j-1], board[i-1][j], board[i-1][j-1])+1 answer = max(answer, board[i][j]) return answer ** 2 처음엔 이 방법을 생각하기 어려워서 한참 고민하다가 서치를 통해 다른 사람의 풀이를 보고 해결한 것이다. 풀이를 보고도 이해가 잘 안되어서 직접 손으로 그려보기도 했다. 일단 먼저 생각해야 할 것이 정사각형이 되기 위한 조건이다. 왼쪽 윗대각선 , 왼.. 2021. 5. 21.
[파이썬🐍] 프로그래머스 : 로또의 최고 순위와 최저 순위 def solution(lottos, win_nums): answer = 0 cnt,cnt2 = 0, 0 for i in lottos: #최고 순위 구하기 if i in win_nums: cnt+=1 elif i == 0: cnt += 1 #0을 전부 당첨번호로 계산 for i in lottos: #최저 순위 구하기 if i in win_nums: cnt2 += 1 if cnt 2021. 5. 20.
[파이썬🐍] 프로그래머스 : 땅따먹기 def solution(land): for i in range(1, len(land)): for j in range(len(land[0])): land[i][j] = max(land[i -1][: j] + land[i - 1][j + 1:]) + land[i][j] #j열 빼고 앞뒤로 더해진 것중 max값 return max(land[-1]) land 기존 리스트를 이용하여 마지막열에 가능한 최댓값을 저장하고 마지막열에서도 최댓값을 반환하는 방법이다. | 1 | 2 | 3 | 5 | | 5 | 6 | 7 | 8 | | 4 | 3 | 2 | 1 | 위 리스트를 예로 들자면 마지막열은 [16,15,13,13] 이렇게 남고 여기서 max 값인 16이 답이된다. 2021. 5. 19.
[파이썬🐍] 프로그래머스 : 구명보트 def solution(people, limit): people.sort() cnt = 0 light, heavy = 0, len(people)-1 while (light < heavy): if people[light] + people[heavy] 2021. 5. 18.
반응형