본문 바로가기

Algorithm/BOJ20

[BOJ] 1051 | 숫자 정사각형 1051 | 숫자 정사각형 https://www.acmicpc.net/problem/1051 작성 코드 n, m = map(int, input().split()) nums = [] same = [] for _ in range(n): nums.append(list(map(int,input()))) for k in range(1, min(n, m)+1) : for x in range(n-k) : for y in range(m-k) : if (nums[x][y] == nums[x][y+k] == nums[x+k][y] == nums[x+k][y+k]): same.append(k+1) if same: print(max(same)**2) else: print(1) x, y 는 가로, 세로 인덱스 / k 는 정사각.. 2022. 2. 16.
[BOJ]1018 | 체스판 다시 칠하기 1018 | 체스판 다시 칠하기 https://www.acmicpc.net/problem/1018 작성 코드 M, N = map(int, input().split()) board_input = [] for _ in range(M): board_input.append(input()) count = [] first = 'B' for a in range(M-8): for b in range(N-8): board = board_input[a:a+9][b:b+9] for i in range(8): for j in range(8): if (i+j) % 2 == 0: if board[i][j] != first: w_count += 1 else: if board[i][j] == first: w_count += 1 co.. 2022. 2. 14.
[BOJ] 2839 | 설탕배달 2839 | 설탕배달 https://www.acmicpc.net/problem/2839 작성 코드 N = int(input()) N = int(input()) ex = False for i in range(N // 3 + 1): for j in range(N // 5 + 1): if N == 3 * i + 5 * j: ex = True print(i + j) break if ex: break if not ex: print(-1) for 문 2개 사용 이상 코드 N = int(input()) bag = 0 while N >= 0: # If dived into 5, div and print bag if N % 5 == 0: bag += N // 5 print(bag) break # If not dived i.. 2022. 2. 11.
[BOJ] 11659 | 구간 합 구하기 4 구간 합 구하기 4 https://www.acmicpc.net/problem/11659 작성 코드 import sys n, m = map(int, sys.stdin.readline().split()) nums = list(map(int, sys.stdin.readline().split())) for _ in range(m): i, j = map(int, sys.stdin.readline().split()) print(sum(nums[i-1:j])) 인덱스 슬라이싱을 통해 부분 배열을 구한 후 sum 시간 초과 이상 코드 누적 합 import sys n, m = map(int, sys.stdin.readline().split()) nums = list(map(int, sys.stdin.readline()... 2022. 2. 9.
[BOJ] 18111 | 마인크래프트 18111 | 마인크래프트 https://www.acmicpc.net/problem/18111 작성 코드 import sys n, m, b = map(int, sys.stdin.readline().split()) mine = [] for _ in range(n): mine += map(int, sys.stdin.readline().split()) times = [] mine_maxs = [] mine_max = max(mine) for _ in range(256): time = 0 need = 0 over = 0 for i in mine: if mine_max > i: need += mine_max - i elif mine_max over .. 2022. 2. 8.
[BOJ] 17298 | 오큰수 17298 | 오큰수 https://www.acmicpc.net/problem/17298 작성 코드 def solution(n: int, a: str) -> str: nums = list(map(int, a.split())) answer = [] for idx, num in enumerate(nums): if idx != (len(nums)-1) and max(nums[idx + 1:]) 시간 초과 숫자를 한 칸씩 띄어 쓴 형태로 출력해야 돼서 join을 사용하려고 했는데 str 형식에만 적용 가능하다고 해서 일일이 str 형식으로 바꾸어주었다 이상 코드 def solution(n: int, a: str) -> List[int]: nums = list(map(int, a.split())) answer =.. 2022. 2. 4.
반응형