[BOJ / 백준] 2210번 숫자판 점프 파이썬(Python) 문제 풀이

2021. 8. 1. 20:43·Baekjoon
728x90

 

문제

 

문제 링크 : https://www.acmicpc.net/problem/2210

 

2210번: 숫자판 점프

111111, 111112, 111121, 111211, 111212, 112111, 112121, 121111, 121112, 121211, 121212, 211111, 211121, 212111, 212121 이 가능한 경우들이다.

www.acmicpc.net

 

 

 

 

 

CODE

import sys
from itertools import product

input = sys.stdin.readline

dx = [1, -1, 0, 0]
dy = [0, 0, 1, -1]

num = list(list(map(int, input().split())) for _ in range(5))
result = []

for i in range(5):
    for j in range(5):
        for dir in product(range(4), repeat=5):         # 이동방향 모든 경우의 수
            temp = []
            temp.append(num[i][j])
            x, y = i, j
            for k in dir:
                x, y = x + dx[k], y + dy[k]
                if not (0 <= x < 5 and 0 <= y < 5):     # 숫자판 범위를 벗어난 경우 중단
                    break
                temp.append(num[x][y])
            if len(temp) == 6:
                result.append("".join(map(str, temp)))  # 문자열로 합쳐서 저장

print(len(set(result)))     # 중복을 없애고 개수 출력

 

 

 

 

 

풀이

💡 idea

- 각 위치에서 5방향으로 이동하는 모든 경우의 수에 대해 이동하면서 거친 여섯 자리 숫자 구하기

 

 

💡 implementation

- 0~4의 방향을 중복 가능하게 5개 골라야 하기 때문에 itertools의 product를 사용

for dir in product(range(4), repeat=5):

 

- "".join을 사용할 때, temp의 원소들이 숫자이기 때문에 map을 사용하여 문자열로 변환한 뒤 join하였다

result.append("".join(map(str, temp)))

 

- 집합은 중복이 없다는 성질을 이용한 set()을 사용하여 리스트에서 중복 없애기

print(len(set(result)))

 

 

 

 

 

결과

 

 

 

 

 

 

 

728x90
저작자표시 비영리 (새창열림)

'Baekjoon' 카테고리의 다른 글

[BOJ / 백준] 17089번 세 친구 성공 파이썬(Python) 문제 풀이  (0) 2021.08.02
[BOJ / 백준] 2422번 한윤정이 이탈리아에 가서 아이스크림을 사먹는데 파이썬(Python) 문제 풀이  (0) 2021.08.01
[BOJ / 백준] 15686번 치킨 배달 파이썬(Python) 문제 풀이  (1) 2021.08.01
[BOJ / 백준] 17088번 등차수열 변환 파이썬(Python) 문제 풀이  (0) 2021.07.31
[BOJ / 백준] 3425번 고스택 파이썬(Python) 문제 풀이  (0) 2021.07.26
'Baekjoon' 카테고리의 다른 글
  • [BOJ / 백준] 17089번 세 친구 성공 파이썬(Python) 문제 풀이
  • [BOJ / 백준] 2422번 한윤정이 이탈리아에 가서 아이스크림을 사먹는데 파이썬(Python) 문제 풀이
  • [BOJ / 백준] 15686번 치킨 배달 파이썬(Python) 문제 풀이
  • [BOJ / 백준] 17088번 등차수열 변환 파이썬(Python) 문제 풀이
s_ih_yun
s_ih_yun
  • s_ih_yun
    CODESYUN
    s_ih_yun
  • 전체
    오늘
    어제
    • 분류 전체보기 (339)
      • Web (8)
      • Java (7)
      • Spring (19)
      • Git (16)
      • MyBatis (1)
      • HTML & CSS (14)
      • JavaScript (11)
      • DevOps (4)
      • Cloud (8)
      • Lanuage (13)
        • C++ (3)
        • Python (10)
      • DB (1)
        • MySQL (1)
        • Oracle (2)
      • Computer Science (26)
        • Concept (3)
        • Algorithm (23)
      • Baekjoon (104)
        • 단계별로 풀어보기 (78)
      • CodeUp (98)
        • Python 기초 100제 (98)
      • Programmers (2)
      • Books (3)
      • etc (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • Syun's Pages
  • 인기 글

  • 태그

    github
    git
    웹
    Python
    HTML
    BOJ
    oracle
    codeup
    Tistory
    자료구조
    db
    JavaScript
    Cloud
    Programmers
    SourceTree
    myBatis
    CodeUp 기초 100제
    web
    c++
    MySQL
    spring
    C
    알고리즘
    VS Code
    clean code
    java
    aws
    단계별로 풀어보기
    CSS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
s_ih_yun
[BOJ / 백준] 2210번 숫자판 점프 파이썬(Python) 문제 풀이
상단으로

티스토리툴바