백준/python
-
[Bronze2] 백준 2292 파이썬 : 벌집백준/python 2022. 12. 14. 18:26
아이디어 우선 시간제한 2초, n이 최대 10억까지 주어질 수 있으므로 시간복잡도 O(N)으로 해결할 수 있는 문제라고 유추할 수 있다. 방의 번호가 주어졌을때, 방에 도달하기 위한 최단경로로 몇개의 방을 거쳐야하는지 알기 위한 아이디어로 벌집의 일정한 규칙을 찾았다. 벌집을 구성하는 가장 바깥에 있는 육각형들의 갯수는 계속해서 6개씩 증가하게 된다. (2번~7번: 6개), (8번~19번: 12개), (20번~37번 : 18개) ..... 문제풀이 n = int(input()) room = 1 count = 1 for _ in range(n): room += 6*n count += 1 print(room, count) 우선 n 값은 차치하고 세워본 간단한 기본 틀. 하지만 생각한대로 room 변수가 ..
-
[Bronze3] 백준 2903 파이썬 : 중앙 이동 알고리즘백준/python 2022. 12. 13. 19:59
아이디어 중복하는 점을 한번만 저장했을때의 총 갯수는 한 변의 점의 갯수의 제곱이다. 예시의 과정을 거칠때마다 한 변의 점의 갯수는 현재 변의 점 갯수 -1개 만큼 추가되게 된다. (각 정사각형 변의 중앙에 점이 추가되므로) 주어지는 n의 값에 상응하도록 해를 만들면 되겠다. 소스코드 n = int(input()) dot = 2 for _ in range(n): dot += dot - 1 # dot = dot + (dot - 1) print(dot**2) 문제풀이 기본으로 주어지는 정사각형은 점이 두개이므로 변수 dot 을 2로 설정하였다. 반복문을 사용해 n번의 과정을 거칠때마다 추가되는 한 변의 점의 갯수를 설정했다. (현재 한 변의 점 갯수 + 현재 한 변의 점 갯수 - 1) 총 점의 갯수는 한 변..
-
[Brozne3] 백준 2720 파이썬 : 세탁소 사장 동혁백준/python 2022. 11. 20. 14:59
아이디어 거스름돈 4종류 모두 배수관계에 있기 때문에 그리디 알고리즘을 통해 해결할 수 있다. 소스코드 coin = [25, 10, 5, 1] t = int(input()) for _ in range(t): c = int(input()) # 124 for i in coin: print(c // i, end=' ') c = c % i 문제 풀이 입력받은 거스름돈을 가장 큰 화폐단위부터 나누고, 몫은 출력하고 나머지는 계속 남은 화폐단위로 나눠주면 된다. 거스름돈으로 받는 가장 작은 정수가 1, 가장 작은 화폐단위인 페니의 값이 1이므로 지불할 수 없는 거스름돈값은 없다.
-
[silver5] 백준 2563 : 색종이백준/python 2022. 10. 20. 18:26
소스코드 paper = [[0] * 101 for i in range(101)] for _ in range(int(input())): a,b = map(int,input().split()) for i in range(10): for j in range(10): paper[a+i][b+j] = 1 r = 0 for i in paper: r += sum(i) print(r) 문제 풀이 중복된 영역을 제외한 색칠된 색종이의 영역을 구하는 문제
-
[Bronze3] 백준 2566 파이썬 : 최댓값백준/python 2022. 9. 27. 23:17
코드 board = [] for row in range(9): row = list(map(int, input().split())) board.append(row) row = 0 col = 0 max = -1 for i in range(9): for j in range(9): if board[i][j] > max: max = board[i][j] row = i+1 col = j+1 print(max) print(row, col) 문제 풀이 최댓값을 2차원에서 찾는 문제