-문제:
생각해낸 풀이방법
숫자 받고, 정수로 리스트 만듦
내림차순으로 정렬한다(sort.(reverse=True)
끝 세자리수가 30의 배수이면 맞고, 아니면 -1 출력 (여기에서 오류가 났다)
--> 0이 있으면 2,5의 배수이기 때문에 0이 하나라도 있어야하고, 3의 배수이려면 끝 세자리 합이 3의 배수가 아니라
각 자리에 있는 모든 숫자의 합이 3의 배수가 되어야 한다 .
-정답 풀이:
data=list(input())
n=len(data)
check=0
for i in range(n):
check+=int(data[i])
data.sort(reverse = True)
if check %3 ==0 and '0' in data:
print(''.join(data))
else:
print(-1)
-틀렸던 풀이
출력 초과가 났다. 내 예상으론 else문에 해당하는 건데 조건을 잘못 설정해서 if문으로 가서 -1보다 큰 값이 출력돼서 틀렸던 것 같다
data=list(input())
n=len(data)
data.sort(reverse = True)
check = int(data[-3])*100 +int(data[-2])*10 + int(data[-1])
if check % 30 ==0:
ans=''
for i in range(n):
ans+=data[i]
print(ans)
else:
print(-1)
'백준 > Greedy' 카테고리의 다른 글
[그리디/백준] 1946번: 신입 사원 (0) | 2022.06.27 |
---|---|
[그리디/백준] 13305번: 주유소 (0) | 2022.06.27 |
[그리디/백준] 2217번: 로프 (0) | 2022.06.24 |
[그리디/백준] 1541번: 잃어버린 괄호 (0) | 2022.06.24 |
[그리디/백준] 1931번: 회의실 배정 (0) | 2022.06.23 |