이 영역을 누르면 첫 페이지로 이동
자라자 블로그의 첫 페이지로 이동

자라자

페이지 맨 위로 올라가기

자라자

개발자를 준비하는 자라자의 블로그입니다.

프로그래머스_키패드누르기_파이썬

  • 2021.09.09 12:21
  • PS/Programmers
프로그래머스로고

[문제 링크]

https://programmers.co.kr/learn/courses/30/lessons/67256

[소스코드]

def solution(numbers, hand):
    answer = ''
    key_dict = {1:(0,0),2:(0,1),3:(0,2),
                4:(1,0),5:(1,1),6:(1,2),
                7:(2,0),8:(2,1),9:(2,2),
                '*':(3,0),0:(3,1),'#':(3,2)}

    left = [1,4,7]
    right = [3,6,9]
    lhand = '*'
    rhand = '#'
    for i in numbers:
        if i in left:
            answer += 'L'
            lhand = i
        elif i in right:
            answer += 'R'
            rhand = i
        else:
            curPos = key_dict[i]
            lPos = key_dict[lhand]
            rPos = key_dict[rhand]
            ldist = abs(curPos[0]-lPos[0]) + abs(curPos[1]-lPos[1])
            rdist = abs(curPos[0]-rPos[0]) + abs(curPos[1]-rPos[1])

            if ldist < rdist:
                answer += 'L'
                lhand = i
            elif ldist > rdist:
                answer += 'R'
                rhand = i
            else:
                if hand == 'left':
                    answer += 'L'
                    lhand = i
                else:
                    answer += 'R'
                    rhand = i

    return answer

[풀이]

  1. 각 버튼을 튜플로 좌표화 시켜서 사전에 저장한다.
  2. numbers를 순회하면서 왼손과 오른손의 좌표를 계속 업데이트한다.
  3. 1,4,7인 경우 L, 3,6,9인 경우 R을 할당하고
  4. 아닌 경우 현재 위치, 현재왼손위치, 현재 오른손위치를 딕셔너리에서 찾아서 거리를 계산한다.

'PS > Programmers' 카테고리의 다른 글

프로그래머스_표_편집  (0) 2021.09.09
프로그래머스_N개의최소공배수_파이썬  (0) 2021.09.09
프로그래머스_신규아이디추천_파이썬  (0) 2021.09.09
프로그래머스_크레인_인형뽑기_게임  (0) 2021.09.09
프로그래머스_비밀지도_파이썬  (0) 2021.09.09

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • 프로그래머스_N개의최소공배수_파이썬

    프로그래머스_N개의최소공배수_파이썬

    2021.09.09
  • 프로그래머스_신규아이디추천_파이썬

    프로그래머스_신규아이디추천_파이썬

    2021.09.09
  • 프로그래머스_크레인_인형뽑기_게임

    프로그래머스_크레인_인형뽑기_게임

    2021.09.09
  • 프로그래머스_비밀지도_파이썬

    프로그래머스_비밀지도_파이썬

    2021.09.09
다른 글 더 둘러보기

정보

자라자 블로그의 첫 페이지로 이동

자라자

  • 자라자의 첫 페이지로 이동

검색

메뉴

  • 🏠 HOME
  • 💡 ABOUT
  • 💻 GITHUB

카테고리

  • 분류 전체보기 (91)
    • Tech Note (3)
    • Dev Log (11)
    • Study Log (11)
    • Settings (3)
    • PS (53)
      • Programmers (21)
      • BOJ (32)
    • Diary (10)

최근 글

인기 글

댓글

공지사항

아카이브

태그

  • 리액트
  • 공식문서읽기
  • ㅣ

나의 외부 링크

정보

자라자의 자라자

자라자

자라자

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © 자라자. Designed by Fraccino.

티스토리툴바