HelloMinchan
처음처럼
HelloMinchan
LinkedIn
전체 방문자
오늘
어제
  • 분류 전체보기 (306)
    • Backend (4)
      • NestJS (1)
      • Express (1)
      • Spring (2)
    • Infrastructure (1)
      • AWS (1)
    • Frontend (1)
      • Next.js (1)
    • Language & Runtime (4)
      • Java (2)
      • Node.js (2)
    • Computer Science (8)
      • Computer Networks (3)
      • Operating Systems (4)
      • OOP (1)
    • 독서 (4)
      • 데이터 중심 애플리케이션 설계 (3)
      • 객체지향의 사실과 오해 (1)
    • 회고 (4)
      • Project (2)
      • Career (2)
    • Deprecated (280)

채널

  • GitHub
  • LinkedIn

최근 글

태그

  • 알고스팟
  • 코딩
  • 프로그래머스C++
  • 프로그래머스Python
  • 백준
  • 백준C++
  • 백준Go
  • back-end
  • Algospot
  • programmers
  • 백준Python
  • front-end
  • 데이터베이스
  • 알고스팟Python
  • 백엔드
  • Baekjoon Online Judge
  • 프로그래머스
  • 개발자
  • Database
  • 프로그래밍

최근 댓글

인기 글

hELLO
HelloMinchan

처음처럼

[Baekjoon Online Judge] 백준 5622번 다이얼(Python)
Deprecated

[Baekjoon Online Judge] 백준 5622번 다이얼(Python)

2020. 3. 22. 17:24

© 2020 All Rights Reserved. 주식회사 스타트링크

[Baekjoon Online Judge] 백준 5622번 다이얼

(Python)

(글쓴날 : 2020.03.22)

 


* Baekjoon Online Judge, 백준 5622번 문제 Python 언어 풀이입니다.

* 소스 코드의 저작권은 글쓴이에게 있습니다.


 

 

백준 5622번 다이얼


1) 문제

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

 

5622번: 다이얼

문제 상근이의 할머니는 아래 그림과 같이 오래된 다이얼 전화기를 사용한다. 전화를 걸고 싶은 번호가 있다면, 숫자를 하나를 누른 다음에 금속 핀이 있는 곳 까지 시계방향으로 돌려야 한다. 숫자를 하나 누르면 다이얼이 처음 위치로 돌아가고, 다음 숫자를 누르려면 다이얼을 처음 위치에서 다시 돌려야 한다. 숫자 1을 걸려면 총 2초가 필요하다. 1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩 더 걸린다.

www.acmicpc.net


2) 풀이 과정

문제를 잘 읽고 주어진 조건에 맞추어 구현하기만 하면 풀리는 문제입니다.

알파벳으로 이루어진 문자열이 주어졌을 때 해당 문자열의 각 알파벳마다 걸리는 시간의 총합을 출력해 주시면 되겠습니다.

 

저의 경우, ord() 함수로 각 알파벳들의 아스키코드를 구해, 조건문을 사용하여 특정 알파벳이 걸리는 시간을 분기하였고, 반복문을 돌려 문자열의 각 알파벳들이 걸리는 시간의 총합을 구해 문제를 해결하였습니다.


3) 코드

 

* Python 코드

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
import sys
input = sys.stdin.readline
 
word = list(input().rstrip())
time = 0
 
for i in word:
    if ord(i) - 64 <= 3:
        time += 3
    elif ord(i) - 64 <= 6:
        time += 4
    elif ord(i) - 64 <= 9:
        time += 5
    elif ord(i) - 64 <= 12:
        time += 6
    elif ord(i) - 64 <= 15:
        time += 7
    elif ord(i) - 64 <= 19:
        time += 8
    elif ord(i) - 64 <= 22:
        time += 9
    elif ord(i) - 64 <= 26:
        time += 10
 
print(time)

 

저작자표시 비영리 변경금지 (새창열림)

'Deprecated' 카테고리의 다른 글

[Baekjoon Online Judge] 백준 2884번 알람 시계(Python)  (0) 2020.03.23
[Baekjoon Online Judge] 백준 2941번 크로아티아 알파벳(Python)  (0) 2020.03.22
[Baekjoon Online Judge] 백준 2908번 상수(Python)  (0) 2020.03.22
[Baekjoon Online Judge] 백준 1152번 단어의 개수(Python)  (0) 2020.03.22
[Baekjoon Online Judge] 백준 1157번 단어 공부(Python)  (0) 2020.03.22
    'Deprecated' 카테고리의 다른 글
    • [Baekjoon Online Judge] 백준 2884번 알람 시계(Python)
    • [Baekjoon Online Judge] 백준 2941번 크로아티아 알파벳(Python)
    • [Baekjoon Online Judge] 백준 2908번 상수(Python)
    • [Baekjoon Online Judge] 백준 1152번 단어의 개수(Python)
    HelloMinchan
    HelloMinchan
    Though you should not fear failure, You should do your very best to avoid it.

    티스토리툴바