소개:
트위터와 인스 타 그램 및 다른 사람처럼, 내가 좋아하는 번호를 표시하고 싶어 1.2K하고 3.8 M대신에 1,222또는 3,823,456.
그러나 이것이 전부가 아닙니다! 우리 모두가 알다시피, 몇 가지가있을 수 있습니다 인간 undoubtely를 반전하려고하지 않습니다 이러한 약어와 같은 것이다. 그래서, 1.2k될 것입니다 1,200및 3.8 M될 것입니다 3,800,000.
작업:
- 당신의 임무는 숫자 목록 ( 문자열로 주어진 )을 약어 쌍으로 변환하거나 그 반대로 변환하는 프로그램이나 함수를 작성하는 것 입니다.
예를 들어, 입력 목록 (또는 any STDIN)이 인 ['1.4k', '1,234,567', '7.99M']경우 다음을 출력해야합니다.
['1,400', '1.2M', '7,990,000']
약어의 다음 스키마를 따를 수 있습니다.
- 10 3- > 1 킬로-> K
- 10 6- > 백만-> M
- 10 9- > 10 억-> B
코드는 모든 소문자, 모든 대문자, 대소 문자 또는 정의되지 않은 대소 문자를 입력으로 가정하고 출력에 이들 중 하나를 사용할 수 있지만 일관성이 있어야합니다.
규칙 및 제한 사항 :
- 프로그램 또는 함수를 작성하여
STDIN(또는 가장 가까운 대안), 명령 행 인수 또는 함수 인수 를 통해 입력을 받고STDOUT(또는 가장 가까운 대안), 함수 리턴 값 또는 함수 (out) 매개 변수 를 통해 결과를 출력 할 수 있습니다 . - 입력은 편리한 목록 또는 문자열 형식 일 수 있습니다. 가 각각 보다 작고 목록에 하나 이상의 요소 가 있다고 가정 할 수 있습니다 .
ai231 - 각 단축 번호가 포함됩니다 하나만
.정상적인 번호가 포함됩니다 동안 많은으로,필요에 따라 (이 번호는 변경되지 않을 것이라고 가정 할 수있다). - 당신 은 숫자를 입력 하지
'123456'말고 오히려123,456 - 표준 코드 골프 규칙이 적용됩니다.
테스트 사례 :
Input: ['1.5M', '77.6k', '123,456,789'] Output: ['1,500,000', '77,600', '123.4M']
Input: ['3,000,000,000', '581k', '2b'] Output: ['3B', '581,000', '2,000,000,000']
Input: ['0.1k'] Output: ['100']
Input: ['888', '33'] Output: ['0.888k', '0.033k']
설명 :
- 약어 출력에서 소수점 이하의 숫자 <1000 인 경우 올바른 결과를 얻는 데 필요한 자릿수를 가져야합니다. (예 :
2->됩니다0.002k)- 최대 3 자리를 의미합니다 . 1000보다 큰 숫자의 경우 최대 10 진수 를 사용할 수 있습니다 . - 약어는 소문자 또는 대문자 일 수 있습니다.
- 의견에서 제안한대로 내장 제한을 제거했습니다.
바이트 단위의 가장 짧은 코드가 이깁니다!
'123,456,789' -> '123.4M'합니까? 또한 이것은 사용할 소수 자릿수를 명확하게하지 않습니다. 어쨌든 1000 미만의 항목은 약어로 사용할 필요가 없습니다.
["k", "M", "G"]. "정상 숫자에 필요한 만큼의 숫자가 포함되어있다 "는 것은 우리 나라에서 어떤 것을 사용하는 것은 실수라는 것을 의미합니다.