1. 먼저 '.' 을 기준으로 입력값을 구분할 수 있도록 split함수를 사용하였다.
2. 구분된 리스트의 각 값들의 길이가 홀수이면 -1을 출력할 수 있도록 해준다.
이 때, flag변수를 설정해서 구분하였다.
3. 먼저 'AAAA'를 4로 나눈 몫만큼 곱해주고 나머지에 2로 나눈 몫만큼 'BB'에 곱해준다.
사실 지금 생각해보니 2로 나눈 몫은 항상 1이 될 수 밖에 없다. (결과는 같다.)
참고 print함수를 사용해서 list를 차례대로 출력하려고 할 때 *를 리스트 앞에 붙여주면 띄어쓰지 않고 출력해준다. 이 때 sep, end같은 print내부 옵션도 당연히 사용 가능하다.
# 1343번 : 폴리오미노
li = input().split('.')
ans = []
flag = 0
for i in li:
if len(i) % 2 :
flag = 1
if flag:
print(-1)
else:
for i in li:
a = len(i)//4
b = (len(i)-(4*a))//2
ans.append('AAAA'*a + 'BB'*b)
print(*ans,sep=('.'))
728x90
'알고리즘 문제풀이 > Greedy' 카테고리의 다른 글
(파이썬 python) 백준 11000번 : 강의실 배정(greedy) (0) | 2022.05.11 |
---|---|
(파이썬 python) 백준 9237번 : 이장님 초대(greedy) (0) | 2022.05.11 |
백준 1138번: 한 줄로 서기(greedy) (0) | 2022.05.10 |
백준 3109번: 빵집 - 파이썬(greedy) (0) | 2022.05.04 |
백준 2847번: 게임을 만든 동준이 - 파이썬(greedy) (0) | 2022.04.19 |