[COS PRO 2급-Python] 단체 티셔츠 주문하기

Sunhee·2023년 4월 5일

COS PRO - Python 2급

목록 보기
1/44
post-thumbnail

[COS PRO 2급-Python] 단체 티셔츠 주문하기

문제 설명

A 학교에는 단체 티셔츠를 주문하기 위해 학생별로 원하는 티셔츠 사이즈를 조사했습니다. 선택할 수 있는 사이즈는 작은 순서대로 "XS","S","M","L","XL","XXL" 총 6종류가 있습니다. 학생별로 원하느 닡셔츠 사이즈를 조사한 결과가 들어있는 배열 shirtsize와 shirtsize의 길이 shirtsizelen이 매개변수로 주어질 때, 사이즈별로 티셔츠가 몇 벌씩 필요한지 가장 작은 사이즈부터 순서대로 배열에 담아 return 하도록 solution 함수를 완성해 주세요.


문제변수 설명

학생별로 원하는 사이즈를 조사한 결과가 들어있는 배열 shirtsize와 shirtsize의 길이 shirtsizelen이 solution 함수의 매개변수로 주어집니다. shirtsizelen은 1 이상 100이하의 자연수입니다. shirt_size 에는 치수를 나타내는 문자열 "XS","S","M","XL","XXL"이 들어있습니다.


return 값 설명

티셔츠가 사이즈별로 몇 벌씩 필요한지 가장 작은 사이즈부터 순서대로 배열에 담아 return 해주세요. * return 하는 배열에는 ["XS"개수, "S"개수, "M"개수, "L"개수, "XL"개수, "XXL" 개수] 순서로 들어있어야 합니다.


예시




알고리즘 구상

▶ answer 배열을 만들고
▶ shirt_size만큼 for문을 돌려서
▶ if문으로 count를 하자!


내가 쓴 코드!

# -*- coding: utf-8 -*-
# UTF-8 encoding when using korean
def solution(shirt_size):
	answer = [0, 0, 0, 0, 0, 0]
	for i in shirt_size:
		if i == "XS":
			answer[0] += 1
		elif i == "S":
			answer[1] += 1
		elif i == "M":
			answer[2] += 1
		elif i == "L":
			answer[3] += 1
		elif i == "XL":
			answer[4] += 1
		elif i == "XXL":
			answer[5] += 1
	
	return answer



다른 사람의 코드 01

def solution(shirt_size):
	answer = [0] * 6
    sizelist = ['XS', 'S', 'M', 'L', 'XL', 'XXL']
    for i in range(len(shirt_size)):
    	for j in range(len(sizelist)):
        	if shirt_size[i] == sizelist[j]:
            	answer[j] += 1
                break
	return answer

중첩 for문과 if문을 이용해 간단하게 나타냈다.


느낀점

같은 문제를 다른 두 방법으로 푼 것 같습니다!
코드는 짧고 간결하다고 좋은 것이 아닌 시간 복잡도를 생각하여 어느 코드가 더 좋은 생각해 보는 것이 좋을 것 같네요~!


0개의 댓글