Coding Test/programmers
[Python] 파이썬 프로그래머스 등굣길
파송송
2023. 6. 30. 18:02
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/42898
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
나의 풀이
- 아래와 오른쪽으로만 이동 가능
- 물 웅덩이는 지나가지 못함
- 빨 -> 파 -> 초 -> 검 방향으로 갈 수 있는 경우의 수를 체크함
- 여기서 puddles이 x, y 정렬이 아니라 y, x 정렬이라 반대로 넣어줘야 함
이거 때문에 시간이 오래 걸림
def solution(m, n, puddles):
roadmap = [[0]*(m+1) for j in range(n+1)]
roadmap[1][1] = 1
for pud in puddles:
roadmap[pud[1]][pud[0]] = -1
for y in range(1, m+1):
for x in range(1, n+1):
if roadmap[x][y] == -1:
roadmap[x][y] = 0
else:
roadmap[x][y] += roadmap[x-1][y] + roadmap[x][y-1]
return roadmap[n][m]
효율성에서 실패가 떠서 다시 문제를 읽어보니 %1000000007을 빼먹었다.
def solution(m, n, puddles):
roadmap = [[0]*(m+1) for j in range(n+1)]
for pud in puddles:
roadmap[pud[1]][pud[0]] = -1
for y in range(1, m+1):
for x in range(1, n+1):
if x == 1 and y == 1:
roadmap[x][y] = 1
elif roadmap[x][y] == -1:
roadmap[x][y] = 0
else:
roadmap[x][y] = roadmap[x-1][y] + roadmap[x][y-1]
return roadmap[n][m] % 1000000007
728x90