새소식

⌨️ Algorithms/백준

[Python] 백준 1755번_숫자놀이

2023. 3. 7. 19:19

  • -

https://www.acmicpc.net/problem/1755

 

1755번: 숫자놀이

79를 영어로 읽되 숫자 단위로 하나씩 읽는다면 "seven nine"이 된다. 80은 마찬가지로 "eight zero"라고 읽는다. 79는 80보다 작지만, 영어로 숫자 하나씩 읽는다면 "eight zero"가 "seven nine"보다 사전순으로

www.acmicpc.net

 

  • 79를 영어로 읽되 숫자 단위로 하나씩 읽는다면 "seven nine", 80은 "eight zero"
  • 79는 80보다 작지만, 영어로 숫자 하나씩 읽는다면 "eight zero"가 "seven nine"보다 사전순으로 먼저 옴
  • 정수 M, N(1 ≤ M ≤ N ≤ 99)이 주어지면 M 이상 N 이하의 정수를 숫자 하나씩 읽었을 때를 기준으로 사전순으로 정렬하여 출력하기
  • 입력
    • 첫째 줄에 M과 N이 주어짐
  • 출력
    • M 이상 N 이하의 정수를 문제 조건에 맞게 정렬하여 한 줄에 10개씩 출력
  • 시간 제한: 2초
  • 메모리 제한: 128 MB

 

""" 입출력 예시) 8 28 -> 8 9 18 15 14 19 11 17 16 13 12 10 28 25 24 21 27 26 23 22 20 """

 

 

## 의사코드 ## # m 이상 n 이하의 정수를 리스트에 담기 # dic = {0: 'zero', 1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: 'five', # 6: 'six', 7: 'seven', 8: 'eight', 9: 'nine'} # 숫자를 영어로 읽기 # 사전순으로 정렬 # dic의 key와 value 뒤집기 # v_k_dic = {v:k for k, v in dic.items()} # 영어를 다시 숫자로 만들기 # 10개씩 출력 # for i in range(0, len(nums), 10): # print(*nums[i:i+10])

 

 

 

 

m, n = map(int, input().split()) dic = {0: 'zero', 1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: 'five', 6: 'six', 7: 'seven', 8: 'eight', 9: 'nine'} nums = [] # 숫자를 영어로 읽기 for num in range(m, n+1): num = str(num) str_num = "" # 영어로 읽은 숫자 for i in range(len(num)): str_num = str_num + " " + dic[int(num[i])] nums.append(str_num.lstrip()) # 사전순으로 정렬 nums.sort() # dic의 key와 value 뒤집기 v_k_dic = {v:k for k, v in dic.items()} # 영어를 다시 숫자로 만들기 for i in range(len(nums)): int_num = "" # 다시 숫자로 변환된 숫자 str_num = nums[i].split() for j in str_num: int_num += str(v_k_dic[j]) nums[i] = int(int_num) # 10개씩 출력 for i in range(0, len(nums), 10): print(*nums[i:i+10])

 

 

1) m이상 n이하의 숫자를 영어로 읽어서 nums 리스트에 담기

    - dic 사용 

 

2) nums 리스트를 사전순으로 정렬

 

3) 영어를 다시 숫자로 만들기

    - v_k_dic 사용 (영어를 넣으면 숫자로 반환되도록 dic의 key와 value를 뒤집은 딕셔너리)

 

4) nums 리스트의 요소들을 10개씩 출력

 

 

  • 과정 확인
""" <숫자를 영어로 읽기> num: 8 str_num: eight num: 9 str_num: nine num: 10 str_num: one zero num: 11 str_num: one one num: 12 str_num: one two num: 13 str_num: one three num: 14 str_num: one four num: 15 str_num: one five num: 16 str_num: one six num: 17 str_num: one seven num: 18 str_num: one eight num: 19 str_num: one nine num: 20 str_num: two zero num: 21 str_num: two one num: 22 str_num: two two num: 23 str_num: two three num: 24 str_num: two four num: 25 str_num: two five num: 26 str_num: two six num: 27 str_num: two seven num: 28 str_num: two eight -------------------------------------------------- """

 

""" 사전순으로 정렬된 nums: ['eight', 'nine', 'one eight', 'one five', 'one four', 'one nine', 'one one', 'one seven', 'one six', 'one three', 'one two', 'one zero', 'two eight', 'two five', 'two four', 'two one', 'two seven', 'two six', 'two three', 'two two', 'two zero'] """

 

""" <영어를 다시 숫자로 만들기> str_num: eight int_num: 8 str_num: nine int_num: 9 str_num: one eight int_num: 18 str_num: one five int_num: 15 str_num: one four int_num: 14 str_num: one nine int_num: 19 str_num: one one int_num: 11 str_num: one seven int_num: 17 str_num: one six int_num: 16 str_num: one three int_num: 13 str_num: one two int_num: 12 str_num: one zero int_num: 10 str_num: two eight int_num: 28 str_num: two five int_num: 25 str_num: two four int_num: 24 str_num: two one int_num: 21 str_num: two seven int_num: 27 str_num: two six int_num: 26 str_num: two three int_num: 23 str_num: two two int_num: 22 str_num: two zero int_num: 20 -------------------------------------------------- """

 

 

 

 

 

 

https://yunwoong.tistory.com/159

 

[Python] dictionary(딕셔너리) Value로 Key찾기

Python에서 dictionary(딕셔너리) 타입은 immutable한 키(key)와 mutable한 값(value)으로 맵핑되어 있는 순서가 없는 집합입니다. 일반적인 딕셔너리 타입은 중괄호로 되어 있고 키와 값으로 이루어져 있습

yunwoong.tistory.com

 

https://jae04099.tistory.com/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%B0%B1%EC%A4%80-11721-%EC%97%B4-%EA%B0%9C%EC%94%A9-%EB%81%8A%EC%96%B4-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0

 

[파이썬] 백준 - 11721: 열 개씩 끊어 출력하기

문제 11721번: 열 개씩 끊어 출력하기 첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다. www.acmicpc.n

jae04099.tistory.com

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다!