https://edu.goorm.io/learn/lecture/17299/cos-pro-1%EA%B8%89-%EA%B8%B0%EC%B6%9C%EB%AC%B8%EC%A0%9C-python/lesson/839062/6%EC%B0%A8-%EB%AC%B8%EC%A0%9C2-%EB%8B%A8%EC%96%B4%EB%A5%BC-%EC%88%9C%EC%84%9C%EB%8C%80%EB%A1%9C-%EC%A0%81%EC%9C%BC%EC%84%B8%EC%9A%94-python

 

goorm

구름은 클라우드 기술을 이용하여 누구나 코딩을 배우고, 실력을 평가하고, 소프트웨어를 개발할 수 있는 클라우드 소프트웨어 생태계입니다.

goorm.co

 

□ 문제설명

한 줄에 K자를 적을 수 있는 메모장에 영어 단어들을 적으려 합니다. 영어 단어는 정해진 순서로 적어야 하며, 단어와 단어 사이는 공백 하나로 구분합니다. 단, 한 줄의 끝에 단어 하나를 완전히 적지 못한다면, 그 줄의 나머지 부분을 모두 공백으로 채우고 다음 줄부터 다시 단어를 적습니다.
예를 들어 한 줄에 10자를 적을 수 있고, 주어진 단어가 순서대로 `["nice", "happy", "hello", "world", "hi"]` 인 경우 각 줄에 다음과 같이 적을 수 있습니다.('_'는 공백을 나타냅니다.)
  • 첫째 줄 : `"nice_happy"`
  • 둘째 줄 : `"hello_____"`
  • 셋째 줄 : `"world_hi"`
이때, 둘째 줄에 `"hello"`를 적으면 단어를 적을 수 있는 남은 칸은 5칸이며, `"world"`를 이어서 적으려면 공백 하나를 포함하여 총 6칸이 필요합니다. 따라서 단어가 잘리게 되므로 남은 칸을 모두 공백으로 채운 후, 다음 줄에 `"world"`부터 다시 단어를 적어 나갑니다.
한 줄에 적을 수 있는 글자 수 K와 적을 단어가 순서대로 담긴 배열 words, words의 길이 words_len이 매개변수로 주어질 때, 단어를 모두 적으면 몇 줄이 되는지 return 하도록 solution 함수를 완성해주세요.

□ 매개변수 설명

한 줄에 적을 수 있는 글자 수 K와 적을 단어가 순서대로 담긴 배열 words, words의 길이 words_len이 solution 함수의 매개변수로 주어집니다.
  • K는 5 이상 30 이하인 자연수입니다.
  • words_len은 1 이상 100 이하입니다.
  • words 배열에 담겨있는 모든 단어는 알파벳 소문자로만 이루어져 있으며, 각 단어의 길이는 K 이하입니다.

□ return 값 설명

단어를 모두 적으면 몇 줄이 되는지 return해주세요.

□ 예시

K words words_len return
10 ["nice", "happy", "hello", "world", "hi"] 5 3

□ 예시설명

예제#1
문제의 예시와 같으며, 단어를 모두 적으면 3줄이 됩니다.

 

문제풀이

# -*- coding: utf-8 -*-
# UTF-8 encoding when using korean
def solution(K, words):
	count = 0
	str_sum = ''
	for w in words :
		if (len(str_sum) + len(w)) < K and str_sum != ' ' :
			str_sum += ' ' + w
		else :
			str_sum = w
			count += 1
		
	return count
    

K = 10
words = ["nice", "happy", "hello", "world", "hi"]
ret = solution(10, words)

print("solution 함수의 반환 값은", ret, "입니다.")
[cos pro 1급] 단어를 순서대로 적으세요