Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 색상 목록을 분할하는 프로그램

<시간/>

"빨간색", "녹색" 및 "파란색"이 포함될 수 있는 색상 문자열 목록이 있다고 가정하고 빨간색이 녹색보다 먼저 오고 녹색이 파란색보다 먼저 오도록 목록을 분할해야 합니다.

따라서 입력이 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']