500error
[Cos Pro 1급, Python] 6차 2번 : 단어를 순서대로 적으세요 본문
반응형
문제
한 줄에 K자를 적을 수 있는 메모장에 영어 단어들을 적으려 합니다. 영어 단어는 정해진 순서로 적어야 하며, 단어와 단어 사이는 공백 하나로 구분합니다. 단, 한 줄의 끝에 단어 하나를 완전히 적지 못한다면, 그 줄의 나머지 부분을 모두 공백으로 채우고 다음 줄부터 다시 단어를 적습니다.
예를 들어 한 줄에 10자를 적을 수 있고, 주어진 단어가 순서대로 `["nice", "happy", "hello", "world", "hi"]` 인 경우 각 줄에 다음과 같이 적을 수 있습니다.('_'는 공백을 나타냅니다.)
- 첫째 줄 : `"nice_happy"`
- 둘째 줄 : `"hello_____"`
- 셋째 줄 : `"world_hi"`
이때, 둘째 줄에 `"hello"`를 적으면 단어를 적을 수 있는 남은 칸은 5칸이며, `"world"`를 이어서 적으려면 공백 하나를 포함하여 총 6칸이 필요합니다. 따라서 단어가 잘리게 되므로 남은 칸을 모두 공백으로 채운 후, 다음 줄에 `"world"`부터 다시 단어를 적어 나갑니다.
한 줄에 적을 수 있는 글자 수 K와 적을 단어가 순서대로 담긴 배열 words, words의 길이 words_len이 매개변수로 주어질 때, 단어를 모두 적으면 몇 줄이 되는지 return 하도록 solution 함수를 완성해주세요.
코드
def solution(K, words):
answer = 0
k2 = K
first = True
for word in words:
if first:
length = len(word)
else:
length = len(word) + 1
if 0<= k2 - length <= K:
k2 -= length
first = False
else:
answer += 1
k2 = K-length
first = True
return answer + 1
K = 10
words = ["nice", "happy", "hello", "world", "hi"]
ret = solution(10, words)
print("solution 함수의 반환 값은", ret, "입니다.")
반응형
'알고리즘 > 파이썬' 카테고리의 다른 글
[Cos Pro 1급, Python] 6차 4번 : 카드 섞기 (0) | 2024.03.03 |
---|---|
[Cos Pro 1급, Python] 6차 3번 : 큰수와 작은수의 차이 (0) | 2024.03.03 |
[Cos Pro 1급, Python] 6차 1번 : 꽃피는 봄이 언제 오나요 (0) | 2024.03.03 |
[Cos Pro 1급, Python] 5차 10번 : 계산기 만들기 (0) | 2024.03.02 |
[Cos Pro 1급, Python] 5차 9번 : 몇번 연산을 해야 하나요 (0) | 2024.03.02 |
Comments