Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 프로그래머스
- Kaggle
- 우분투
- 금융문자분석경진대회
- Git
- Real or Not? NLP with Disaster Tweets
- ubuntu
- 편스토랑 우승상품
- programmers
- 프로그래머스 파이썬
- hackerrank
- 데이콘
- github
- 더현대서울 맛집
- 파이썬
- leetcode
- Baekjoon
- ChatGPT
- 맥북
- 자연어처리
- 코로나19
- PYTHON
- 캐치카페
- Docker
- 편스토랑
- 백준
- gs25
- AI 경진대회
- SW Expert Academy
- dacon
Archives
- Today
- Total
솜씨좋은장씨
[leetCode] 482. License Key Formatting (Python) 본문
728x90
반응형
You are given a license key represented as a string S which consists only alphanumeric character and dashes. The string is separated into N+1 groups by N dashes.
Given a number K, we would want to reformat the strings such that each group contains exactly K characters, except for the first group which could be shorter than K, but still must contain at least one character. Furthermore, there must be a dash inserted between two groups and all lowercase letters should be converted to uppercase.
Given a non-empty string S and a number K, format the string according to the rules described above.
Example 1:
Input: S = "5F3Z-2e-9-w", K = 4
Output: "5F3Z-2E9W"
Explanation: The string S has been split into two parts, each part has 4 characters.
Note that the two extra dashes are not needed and can be removed.
Example 2:
Input: S = "2-5g-3-J", K = 2
Output: "2-5G-3J"
Explanation: The string S has been split into three parts, each part has 2 characters except the first part as it could be shorter as mentioned above.
Note:
- The length of string S will not exceed 12,000, and K is a positive integer.
- String S consists only of alphanumerical characters (a-z and/or A-Z and/or 0-9) and dashes(-).
- String S is non-empty.
Solution
class Solution:
def licenseKeyFormatting(self, S: str, K: int) -> str:
num_range = list(range(0, 10))
S_String = "".join(S.upper().split("-"))
answer_list = []
list_S = list(S_String)
if len(list_S) % K == 0:
for i in range(len(list_S) // K):
answer_list.append("".join(list_S[K*i:K*(i+1)]))
elif len(list_S) % K != 0:
cut_num = len(list_S) % K
answer_list.append("".join(list_S[:cut_num]))
list_S = list_S[cut_num:]
for i in range(len(list_S) // K):
answer_list.append("".join(list_S[K*i:K*(i+1)]))
return "-".join(answer_list)
'Programming > 코딩 1일 1문제' 카테고리의 다른 글
[leetCode] 1137. N-th Tribonacci Number (Python) (0) | 2020.11.02 |
---|---|
[leetCode] 509. Fibonacci Number (Python) (0) | 2020.11.01 |
[leetCode] 219. Contains Duplicate II (Python) (0) | 2020.10.28 |
[leetCode] 217. Contains Duplicate (Python) (0) | 2020.10.26 |
[leetCode] 179. Largest Number (Python) (0) | 2020.10.25 |
Comments