본문 바로가기
알고리즘/CodeUp PS

[CodeUp][Python] 1204번 : 영어 서수로 표현하기

by 빛밤하늘 2021. 8. 27.
반응형

밑의 링크는 CodeUp에서의 문제 링크입니다.

문제는 링크를 통해서 직접 봐주시길 바랍니다.

 

영어 서수로 표현하기

영어로 서수를 표현할 때 다음과 같이 나타낸다. 1st  2nd  3rd  4th  5th  6th  ... 10th 11th 12th 13th 14th 15th  ...  20th 21st 22nd 23rd 24th 25th  ...  30th 31st 32nd 33rd 34th 35th  ...  40th 41st 42nd 43rd 44th 45th  ...

codeup.kr

 

 

 

주의해야 할 점

1. 11, 12, 13의 서수

문제 자체에서도 주의해야 할 점으로 보여준 내용입니다.

일의 자리 숫자가 1인 경우에는 뒤에 st, 2인 경우에는 뒤에 nd, 3인 경우에는 뒤에 rd를

붙여서 서수를 만듭니다.

 

그런데 11, 12, 13의 서수들은 각각 영어로 eleventh, twelfth, thirteenth이므로

11th, 12th, 13th로 표현합니다.

 

예제 설명

1. 첫 번째 예제

- 입력

2

 

- 출력

2nd

 

- 설명

입력한 정수는 2입니다.

2는 일의 자리 숫자가 2이고, 12가 아니므로

2 뒤에 nd를 붙여 '2nd'를 출력합니다.

 

생각한 풀이 과정

서수 표현들의 규칙을 찾아보면 11, 12, 13을 제외하면

일의 자리 숫자가 1, 2, 3일 때 뒤에 각각 st, nd, rd를 붙이고,

나머지 숫자들은 모두 뒤에 th를 붙여서 표현합니다.

 

입력한 정수의 일의 자리 숫자를 구하고 

일반적인 서수 규칙을 벗어난 11, 12, 13부터 따로 고려하고,

나머지는 일의 자리 숫자가 어떤 숫자인지에 따라 숫자 뒤에 st, nd, rd, th 중

어떤 문자열이 붙는지를 처리했습니다.

 

 

제출한 파이썬 코드

# readline을 사용하기 위해 import합니다.
from sys import stdin


# 1 ~ 99 중 한 정수를 입력합니다.
# int형으로 변환합니다.
num = int(stdin.readline())
# 입력한 정수의 일의 자리 숫자를 저장하는 변수를 선언합니다.
ones_place_num = num % 10

# 입력한 정수가 11에서 13이라면
if 11 <= num <= 13:
    # 입력한 숫자 뒤에 문자열 'th'를 붙이고 출력합니다.
    print(f'{num}th')
# 입력한 숫자의 일의 자리 숫자가 1이라면
elif ones_place_num == 1:
    # 입력한 숫자 뒤에 문자열 'st'를 붙이고 출력합니다.
    print(f'{num}st')
# 입력한 숫자의 일의 자리 숫자가 2라면
elif ones_place_num == 2:
    # 입력한 숫자 뒤에 문자열 'nd'를 붙이고 출력합니다.
    print(f'{num}nd')
# 입력한 숫자의 일의 자리 숫자가 3이라면
elif ones_place_num == 3:
    # 입력한 숫자 뒤에 문자열 'rd'를 붙이고 출력합니다.
    print(f'{num}rd')
# 그 외의 경우에는
else:
    # 입력한 숫자 뒤에 문자열 'th'를 붙이고 출력합니다.
    print(f'{num}th')

 

제출 결과

CodeUp 1204번 : 영어 서수로 표현하기에서 코드 제출 결과
CodeUp 1204번 : 영어 서수로 표현하기에서 코드 제출 결과

 

 

 

※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.

※ 더 효율적이고 빠른 정답을 환영합니다.

※ 공감 버튼과 구독 버튼도 잊지 말고 꾹 눌러주시면 감사하겠습니다~👍👍

반응형

댓글