일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 인프런 김영한
- 인프런 #김영한
- Hashtable
- 김영한 #DB1편
- 백준
- map
- 스프링MVC 1편
- properties ??
- whitelabel error page
- properties 한글깨짐
- 단방향연결리스트
- 자바
- java
- 404
- 김영한
- api 문서
- 스프링 DB 2편
- python
- IntelliJ
- spring boot
- REST Docs
- linkedlist
- Spring
- jsp
- MVC 2편
Archives
- Today
- Total
산업공학도의 IT
백준 15488 Python(해결) 본문
https://ie-mangchi.tistory.com/9
import sys
input = sys.stdin.readline
N,x,y,K = map(int,input().strip().split())
steps = [(-2, -1), (-1, -2), (1, -2), (2, -1) ,
(2, 1), (1, 2), (-1, 2), (-2, 1)]
xy_list = [[0 for j in range(N)] for i in range(N)]
xy_list[x-1][y-1] +=1
temp_list = [[0 for j in range(N)] for i in range(N)]
for _ in range(K):
for i in range(len(xy_list)):
for j in range(len(xy_list)):
if xy_list[i][j] != 0:
for k in range(xy_list[i][j]):
for step in steps:
row = i+1 + step[0]
col = j+1 + step[1]
if row >= 1 and row <=N and col >= 1 and col <= N:
temp_list[row-1][col-1] += 1
xy_list = temp_list
temp_list = [[0 for j in range(N)] for i in range(N)]
if K == 0:
print(1)
else:
c = 0
for i in range(N):
c += sum(xy_list[i])
print(c/8**K)
리스트의 크기가 커져 2차원 리스트를 초기화 하여 해보았지만 그래도 결과는 같았다.
ㅇ 메모리초과 원인(구글링 해봄)
- 2차원 리스트는 잘못사용하면 메모리문제가 발생할수가 있다고한다
ㅇ 해결방법
- 1차원 리스트를 2차원 리스트처럼 사용하였다.
- 몫과 나머지를 이용해서....
ㅇ 코드
import sys
input = sys.stdin.readline
N,x,y,K = map(int,input().strip().split())
steps = [(-2, -1), (-1, -2), (1, -2), (2, -1) ,
(2, 1), (1, 2), (-1, 2), (-2, 1)]
xy_list = [0] * (N * N)
xy_list[(x - 1) * N + (y - 1)] = 1
temp_list = [0] * (N * N)
for _ in range(K):
for i in range(N * N):
if xy_list[i] != 0:
for step in steps:
row = (i // N) + step[0]
col = (i % N) + step[1]
if row >= 0 and row < N and col >= 0 and col < N:
temp_list[row * N + col] += xy_list[i]
xy_list = temp_list
temp_list = [0] * (N * N)
if K == 0:
print(1)
else:
c = sum(xy_list)
print(c / 8**K)
'코테하는 공간 > Python' 카테고리의 다른 글
백준 15488번 Python (메모리초과ㅠ) (0) | 2023.03.10 |
---|---|
그리디 알고리즘 백준 1541번 Python (0) | 2023.03.06 |