1475번 - 방 번호

의혁·2025년 1월 15일
0

[Algorithm] 알고리즘

목록 보기
14/50

💡 최대한 공간복잡도와 시간복잡도를 계산하면서 풀자!!

num = list(map(int,input()))

digit = [0] * 10

for val in num:
    
    if val == 6 or val == 9:
        if digit[6] < digit[9]:
            digit[6] += 1
        else:
            digit[9] += 1
    else:
        digit[val] += 1
    
print(max(digit))
  • 위 문제는 시간복잡도를 고려하면서 풀었다.
  • 2초로 2억번 가능한데 N의 최댓값이 1,000,000이기 때문에 for문을 한번만 써야했다.
  • 그래서 사용자가 입력하는 번호와 동일한 배열의 인덱스 값을 1씩 증가시켜서 최댓값을 구하는 식으로 구현하였다!!
  • 이렇게 하면 굳이 다른 배열을 만들어줄 필요없이, 최댓값만 찾으면 되니 나름 괜찮은 풀이였던거 같다!!

💡 코딩테스트 중 기발한 접근 전략

  • 서현님
    math.ceil()를 사용해서 마지막에 6과9의 경우를 /2하고 올림해서 계산한다.
profile
매일매일 차근차근 나아가보는 개발일기

0개의 댓글