백준-1475-방 번호

업데이트:

정답률이 낮은 문제였으나 문자열 처리로 간단하게 풀었다.

문제

방 번호 (https://www.acmicpc.net/problem/1475)

풀이

  1. 문제조건 해석

    주어진 문자에서 번호가 나타난 빈도를 세는 문제다.

    69는 같은 번호로 볼 수 있다.

  2. 알고리즘

    1. 69의 count를 비교하여 작은 수에다 count 증가하는 방법

    2. 69의 count를 수학적으로 계산하는 방법

  3. 코드

내가 푼 첫번째 방법의 코드

n = input()
numbers = [0 for _ in range(10)]
for ch in n:
    if ch == '6' or ch == '9':
        if numbers[6] > numbers[9]:
            numbers[9] += 1
        else:
            numbers[6] += 1
    else:
        numbers[int(ch)] += 1
print(max(numbers))

다른 사람이 푼 방법

n = input()
lst = []
for num in '0123456789':
    lst.append(n.count(num))
lst[6] = (lst[6]+lst[9]+1)//2
del lst[9]
print(max(lst))

댓글남기기