일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 편스토랑 우승상품
- 우분투
- 코로나19
- 캐치카페
- 프로그래머스 파이썬
- github
- dacon
- ChatGPT
- 편스토랑
- 더현대서울 맛집
- PYTHON
- Baekjoon
- 자연어처리
- programmers
- SW Expert Academy
- Git
- 파이썬
- leetcode
- Kaggle
- 프로그래머스
- 금융문자분석경진대회
- gs25
- 맥북
- Real or Not? NLP with Disaster Tweets
- AI 경진대회
- ubuntu
- Docker
- 백준
- hackerrank
- 데이콘
- Today
- Total
솜씨좋은장씨
[leetCode] 482. License Key Formatting (Python) 본문

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)



SOMJANG/CODINGTEST_PRACTICE
1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.
github.com
'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 |