
import math
n = input().strip()
arr = [0] * 10
cnt = 0
for i in n:
arr[int(i)] += 1
# 6과 9의 횟수를 더해서 올림 처리
if (arr[9] > 0):
arr[6] = math.ceil((arr[6] + arr[9]) / 2) # 올림
arr[9] = 0 # 9는 필요없으니 0
# 최대값 찾아서 세트 저장
cnt = max(arr)
print(cnt)
우선은 필요한만큼 +1을 시켜놓고 6이랑 9는 교환이 가능하니까 두개를 더해서 2로 나눠서 횟수를 저장한다. 9의 개수는 6과 함께 구해서 저장했으니 0으로 초기화 하고, 이제 arr 배열에 최댓값을 찾으면 그게 바로 세트 수가 된다!
아니 근데 왜 중간에 틀렸다고 나올까??? ㅠㅠㅠ 예제도 다 맞고 반례 3페이지까지 넣었을 때도 다 맞다고 나오는데....
< 코테스터디를 하면서 반례를 찾았다.666666을 입력하면 6이 나온다,,,>
import math
n = input().strip()
arr = [0] * 10
cnt = 0
for i in n:
arr[int(i)] += 1
# 6과 9의 횟수를 더해서 올림 처리
arr[6] = math.ceil((arr[6] + arr[9]) / 2) # 올림
arr[9] = 0 # 9는 필요없으니 0
# 최대값 찾아서 세트 저장
cnt = max(arr)
print(cnt)
if문을 없애면 됐었다...!
n = input().strip()
arr = [0] * 10
cnt = 0
for i in n:
if i == "9" or i == "6":
if arr[6] == arr[9]:
arr[6] += 1
else:
arr[9] += 1
else:
arr[int(i)] += 1
print(max(arr))
그래서 찾아보니 이런식으로 다들 푸네여....
훔 뭐가 다르지
이것도 결국엔 밸런스를 맞춰서 최댓값을 구하는거 같은데....
아리송하다