본문 바로가기
Algorithm Problem Solving/BaekJoon

[BaekJoon] 백준 16360 Go Latin (Python / 파이썬)

by ʚ⇜❅🎕̈❄⇝ɞ 2021. 8. 28.
728x90
반응형

BaekJoon 백준 16360 Go Latin 문제는 주어진 영어 단어를 라틴어로 번역하는 문제로, 영어 단어의 맨 끝 문자를 pseudo-Latin 표에 맞게 바꾸어 출력하는 문제이다. 표에 없다면 영어 단어 끝에 us를 붙여 출력하는 문제이다. 난이도는 Bronze 1이다.

 

BaekJoon 16360 Go Latin 문제 정보

출처

- https://www.acmicpc.net/problem/16360

알고리즘 분류

- 문자열 string

난이도

- 브론즈 1 / Bronze 1

 

Go Latin 문제 요약

  • 영어 단어를 라틴어로 번역하려면 영어 단어의 끝을 표의 규칙에 맞게 변경하면 된다.
  • 변경 규칙이 없는 단어로 끝나면 us를 단어 끝에 붙이면 된다.
  • 영어 단어를 라틴어로 번역하여 출력한다.
  • 번역할 단어의 개수 정수 n (1 ≤ n ≤ 20)이 주어진다.
  • 주어진 단어는 소문자 알파벳 문자만 사용하며 각 단어는 최소 3자에서 최대 30자까지 포함합니다.

 

문제 풀이 과정

  1. 영어 단어를 입력받는다.
  2. 영어 단어의 끝 문자가 표에 있다면 규칙대로 단어 끝을 변경한다.
  3. 표에 없는 문자라면, 단어 끝에 us를 붙인다.
  4. 라틴어로 번역한 영어 단어를 출력한다.

 

코드 및 설명
pseudo = {'a': 'as', 'i': 'ios', 'y': 'ios', 'l': 'les', 'n': 'anes', 'ne': 'anes',
          'o': 'os', 'r': 'res', 't': 'tas', 'u': 'us', 'v': 'ves', 'w': 'was'}

for _ in range(int(input())):
    word = list(input())
    # 맨 끝 문자가 변환 규칙 표에 있으면
    if word[-1] in pseudo:
        word[-1] = pseudo[word[-1]]
    elif ''.join(word[-2::]) == 'ne':
        word[-2::] = pseudo['ne']
    # 없으면
    else:
        word.append('us')
    print(''.join(word))

BaekJoon 백준 16360 Go Latin 문제를 파이썬 python으로 풀어보았다. 난이도는 Bronze 브론즈 1이다. 

728x90
반응형

댓글