본문 바로가기

개인 공부

7/31 일_코딩 테스트 연습(Python)

728x90

1. input() 대신 sys.stdin.readline() 쓰는 이유

input()

import sys
sys.stdin.readline()

sys.stdin.readline()이 빠른 이유는 개행문자(\n)를 안 떼고(항상 rstrip()이나 strip() 메소드가 따라와야 한다), 프롬프트 메시지도 안 받기 때문. 하지만, 일부 IDE나 에디터에서 작동 안 함

출처: https://blog.naver.com/pokemonms/222785754806

 

2. 백준 브론즈 2

숫자 1을 걸려면 총 2초가 필요하다. 1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩 더 걸린다.
상근이의 할머니는 전화 번호를 각 숫자에 해당하는 문자로 외운다. 즉, 어떤 단어를 걸 때, 각 알파벳에 해당하는 숫자를 걸면 된다. 예를 들어, UNUCIC는 868242와 같다.
할머니가 외운 단어가 주어졌을 때, 이 전화를 걸기 위해서 필요한 최소 시간을 구하는 프로그램을 작성하시오.
# 백준 5622번 다이얼
# Ver. 1 (내 코드)
phone = list(input())
time = 0

for i in range(len(phone)):
    if phone[i] == '1':
        time += 2
    # elif phone[i] in ['A', 'B', 'C']:
    elif phone[i] in map(chr, list(range(65, 68))):
        time += 3
    elif phone[i] in ['D', 'E', 'F']:
        time += 4
    elif phone[i] in ['G', 'H', 'I']:
        time += 5
    elif phone[i] in ['J', 'K', 'L']:
        time += 6
    elif phone[i] in ['M', 'N', 'O']:
        time += 7
    elif phone[i] in ['P', 'Q', 'R', 'S']:
        time += 8
    elif phone[i] in ['T', 'U', 'V']:
        time += 9
    elif phone[i] in ['W', 'X', 'Y', 'Z']:
        time += 10
    else:
        time += 11

print(time)

#----------------------------------------#
# Ver. 2
a = ['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQRS', 'TUV', 'WXYZ']
n = input()
count = 0

for i in a:
    for j in i:
        for k in n:
            if j == k:
                count += a.index(i) + 3
                
print(count)

#----------------------------------------#
# Ver. 3
a = ['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQRS', 'TUV', 'WXYZ']
n = input()
count = 0

for i in range(len(n)):
    for j in a:
        if n[i] in j:
            count += a.index(j) + 3
print(count)

#----------------------------------------#
# Ver. 4
a = input()
b = 0

for i in a:
    if ord(i) <= ord('C'):
        b += 3
    elif ord(i) <= ord('F'):
        b += 4
    elif ord(i) <= ord('I'):
        b += 5
    elif ord(i) <= ord('L'):
        b += 6
    elif ord(i) <= ord('O'):
        b += 7
    elif ord(i) <= ord('S'):
        b += 8
    elif ord(i) <= ord('V'):
        b += 9
    else:
        b += 10
        
print(b)

 

728x90