머엉... 재귀함수에 아직 익숙하지 않아서 어렵다 ! 이 문제를 읽으면 재귀함수가 딱 떠오른다 0-1-2-3 이렇게 4칸을 Z 모양으로 탐색한다 그런데 분명 재귀함수를 써야할 것 같은데.. 어디서 쓰면 좋을지 이해하는게 관건이다 처음에는 4칸씩 확장해 나가다가 c행 r열 칸을 찾으면??? 될까 라는 생각을 함 근데 큰 정사각형 덩어리에서 4분의 1 (즉 2*(n-1) * 2*(n-1))로 줄어든다는 것으로 접근하는게 쉽다 그러니까 큰 정사각형을 4칸으로 자르고 또 잘라진 4칸을 각각 잘라진 4분의 1 정사각형에서 4칸으로 자르고... 즉 !! N의 값이 N/2로 연산 할때마다 줄어든다!! 그리고 시작점을 (x,y)==(0,0)라고 생각한다 # 1074 py N, r, c = map(int, input()..
Algorithm (PS)
- 계속 시간 초과가 남 - 틀린 원인 : 최빈값을 구하는 데에 너무 많은 시간 소요 - 이를 해결할 방법... 구글링해보니까 Collection 모듈이 있음 ! - 파이썬 서타일은 함수로 이쁘게 쓰는건가보다 틀린 풀이 import sys n = int(sys.stdin.readline()) numbers = [] for i in range(n): numbers.append(int(input())) # 평균 sum = 0 for i in numbers: sum += i print(round(sum/n, 1)) # 중앙값 sort_numbers = numbers.sort() print(sort_numbers[len(numbers)//2]) # 최빈 count = {} for i in range(len(nu..
내가 해멧던 부분 처음에 board[i][j] 랑 board[i][j+1] 를 검사하는 방향으로 생각했는데 이렇게 되면 중접되서 . 을 확인하는게 되어버리니.. 잘못된 풀이다 그리고 파이썬이 아직 덜 익숙한지라, 배열 입력받는게 헷갈렸다. 이번에는 띄워쓰기 없이 그냥 입력받아야 하는데 list(input()) 으로 해도 괜찮고 아래 풀이처럼 이 경우는 바로 입력받은 한줄을 append해도 괜찮다 ! #1652 백준 board = [] # 2차원 배열 n = int(input()) # n*n 길이 입력받기 for i in range(n): board.append(input()) # 배열 입력받기 col_result = 0 # 세로 결과 row_result = 0 # 가로 결과 # 가로의 경 for i in..