
푼 날짜 : 2024.10.30
푼 문제 : [2210] / 숫자판 점프
사용한 언어 : python
알고리즘 : DFS
접근 방식 :
깊이 우선 탐색으로 시작한다.
문자열을 하나씩 추가해가며 여섯 자리가 만들어지면 set에 담겨 있는지 확인하고 없다면 추가한다.
(여섯 자리가 만들어지면 무조건 리턴해준다.)
DFS를 다 돌고 나면 맨 뒤에 문자열을 제거한다.
이 과정을 반복하면 set에 중복없는 여섯 자리 수가 남게 된다!
코드 :
NUM = 5 # 5x5 배열이므로 상수 고정
graph_ = []
for _ in range(NUM):
nums = list(input().rstrip().split())
graph_.append(nums)
dy = [-1, 1, 0, 0]
dx = [0, 0, -1, 1]
# 가능한 경우의 수를 담기 위함
mySet = set()
def DFS(v, str_):
# 여섯 자리 수 만들어졌을 때
if len(str_) == 6:
# 이미 만들어진 수가 아니라면 추가
if str_ not in mySet: mySet.add(str_)
return
for i in range(4):
ny, nx = v[0]+dy[i], v[1]+dx[i]
if 0<=ny<NUM and 0<=nx<NUM:
str_ += graph_[ny][nx] # 현재 값 더하기
DFS((ny, nx), str_)
str_ = str_[:-1] # 맨 마지막 값 다시 빼주기
for i in range(NUM):
for j in range(NUM):
str_ = graph_[i][j]
DFS((i, j), str_)
# 경우의 수 출력
print(len(mySet))
1트 성공 !!!! 뿌듯하다 오와아아아!!!!!
너무 기뻐 !!!!
'Programming > Algorithm' 카테고리의 다른 글
[프로그래머스] / 영어 끝말잇기 (0) | 2024.11.07 |
---|---|
[백준1189] / 컴백홈 - DFS, 백트래킹 (1) | 2024.10.31 |
[백준3184] / 양 - BFS (1) | 2024.10.27 |
[백준1890] / 점프 - DP (1) | 2024.10.25 |
[백준13913] / 숨바꼭질 4 - BFS (0) | 2024.10.18 |

푼 날짜 : 2024.10.30
푼 문제 : [2210] / 숫자판 점프
사용한 언어 : python
알고리즘 : DFS
접근 방식 :
깊이 우선 탐색으로 시작한다.
문자열을 하나씩 추가해가며 여섯 자리가 만들어지면 set에 담겨 있는지 확인하고 없다면 추가한다.
(여섯 자리가 만들어지면 무조건 리턴해준다.)
DFS를 다 돌고 나면 맨 뒤에 문자열을 제거한다.
이 과정을 반복하면 set에 중복없는 여섯 자리 수가 남게 된다!
코드 :
NUM = 5 # 5x5 배열이므로 상수 고정
graph_ = []
for _ in range(NUM):
nums = list(input().rstrip().split())
graph_.append(nums)
dy = [-1, 1, 0, 0]
dx = [0, 0, -1, 1]
# 가능한 경우의 수를 담기 위함
mySet = set()
def DFS(v, str_):
# 여섯 자리 수 만들어졌을 때
if len(str_) == 6:
# 이미 만들어진 수가 아니라면 추가
if str_ not in mySet: mySet.add(str_)
return
for i in range(4):
ny, nx = v[0]+dy[i], v[1]+dx[i]
if 0<=ny<NUM and 0<=nx<NUM:
str_ += graph_[ny][nx] # 현재 값 더하기
DFS((ny, nx), str_)
str_ = str_[:-1] # 맨 마지막 값 다시 빼주기
for i in range(NUM):
for j in range(NUM):
str_ = graph_[i][j]
DFS((i, j), str_)
# 경우의 수 출력
print(len(mySet))
1트 성공 !!!! 뿌듯하다 오와아아아!!!!!
너무 기뻐 !!!!
'Programming > Algorithm' 카테고리의 다른 글
[프로그래머스] / 영어 끝말잇기 (0) | 2024.11.07 |
---|---|
[백준1189] / 컴백홈 - DFS, 백트래킹 (1) | 2024.10.31 |
[백준3184] / 양 - BFS (1) | 2024.10.27 |
[백준1890] / 점프 - DP (1) | 2024.10.25 |
[백준13913] / 숨바꼭질 4 - BFS (0) | 2024.10.18 |