코드
def change124(n):
num_list = ['1','2','4']
if n <= 3:
return num_list[n - 1] -> n이 자연수 이기때문에 0부터 시작하는 리스트를 맞춰주기 위해서
else:
q,r = divmod(n-1,3)
return change(q) + num_list[r]
-> 재귀를 사용해서 문제를 풀었으며 자연수를 나누기를 했을 때 몫을 계속해서 나눠주고 나머지를 num_list에서 호출하는 방법으로 풀었습니다.
사용한 함수
def findLargestsquare(board):
max_vol = 0
for row in range(0, len(board)):
for col in range(0, lend(board[row])):
if board[row][col] == '0':
board[row][col] = 1
else:
board[row][col] = 0
for row in range(1, len(board)):
for col in range(1, len(board[row])):
if board[row][col] = 1:
continue
board[row][col] = min([board[row][col - 1], board[row - 1][col - 1], board[row][col - 1]]) + 1
if board[row][col] > max_vol:
max_vol = board[row][col]
answer = max_val * max_val
return answer
-> 이 문제는 완벽하게 이해는 하지 못했다. 첫번째 for 구문은 board값이 0일때 구하는 구문이고 밑에 구문이 1일때 구현되는 for 구문인데 이해를 하지 못했다. 코딩 실력이 더욱 올라가고 파이썬 실력이 좀 더 나아지게 되면 이해 할 것이다.
board[row][col] = min([board[row][col - 1], board[row - 1][col - 1], board[row][col - 1]]) + 1 ....? 무슨 의미 일까....
def is_pair(s):
count = 0
for i in s:
if i == '(':
count += 1
elif i ==')':
count -= 1
if count < 0:
return False
if count != 0:
return False
return True
-> 처음에는 문자열을 split 해서 리스트화 시켜서 만들려고 했지만 False값은 잘 나오지만 True 값이 나오지 않았다. 다른 고수 분들 코드를 보니 열고 닫음의 합을 0으로 완벽한 대칭이 되게 만들어 놓았다.