"빨간색", "녹색" 및 "파란색"이 포함될 수 있는 색상 문자열 목록이 있다고 가정하고 빨간색이 녹색보다 먼저 오고 녹색이 파란색보다 먼저 오도록 목록을 분할해야 합니다.
따라서 입력이 colors =["blue","green", "blue", "red", "red"]인 경우 출력은 ['red', 'red', 'green', ' 파란색', '파란색']
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
녹색:=0, 파란색:=0, 빨간색:=0
-
str의 각 문자열에 대해 수행
-
문자열이 "빨간색"과 같으면
-
strs[blue] :="파란색"
-
파란색 :=파란색 + 1
-
strs[녹색] :="녹색"
-
녹색 :=녹색 + 1
-
strs[red] :="빨간색"
-
빨간색 :=빨간색 + 1
-
-
그렇지 않으면 문자열이 "녹색"과 같을 때
-
strs[blue] :="파란색"
-
파란색 :=파란색 + 1
-
strs[녹색] :="녹색"
-
녹색 :=녹색 + 1
-
-
그렇지 않으면 문자열이 "파란색"과 같을 때
-
strs[blue] :="파란색"
-
파란색 :=파란색 + 1
-
-
-
반환 문자열
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
class Solution: def solve(self, strs): green = 0 blue = 0 red = 0 for string in strs: if string == "red": strs[blue] = "blue" blue += 1 strs[green] = "green" green += 1 strs[red] = "red" red += 1 elif string == "green": strs[blue] = "blue" blue += 1 strs[green] = "green" green += 1 elif string == "blue": strs[blue] = "blue" blue += 1 return strs ob = Solution() colors = ["blue","green", "blue", "red", "red"] print(ob.solve(colors))
입력
["blue","green", "blue", "red", "red"]
출력
['red', 'red', 'green', 'blue', 'blue']