[백준 / 1475] 방 번호


날짜: 2021년 5월 22일
소요 시간: 56분 39초
카테고리: 수학 문제
태그: silver.5, 1475, 파이썬

백준 1475 - 방 번호

입출력 예시

예제 입력예제 출력
99992

내가 적은 코드

N = list(str(input()))
Y = []
for i in range(0,9):
    Y.append(N.count(str(i)))
Y[6] = (Y[6] + N.count(str(9)) + 1)//2
print(max(Y))

풀이 과정

먼저 정수형으로 입력된 값 N문자열로 변환시킨 뒤
문자열N의 숫자로 된 원소 0 부터 8까지의 개수를 카운트 해서 리스트 Y에 삽입한다.

그랬을 때 Y[i] = '문자열 N에서 숫자 i의 개수'가 된다.

6과 9는 같은 수로 취급하기 위해 9의 개수를 따로 리스트 Y의 6번째 원소(숫자 6의 개수)에 더해준다.

그랬을 때 리스트 Y의 원소의 최대값을 출력하면 된다.

베스트 코드

c=input().count
print(max(int(max(map(c,'01234578'))),(c('6')+c('9')+1)//2))

반성

  • 자료형이 계속 변하게 코드를 짜다보니 자료형이 헷갈려 오류를 많이 내서 시간을 많이 잡아먹었다.
  • 반복문 하나 없이 같은 정답을 출력하는 베스트 코드처럼 시간복잡도를 줄일 수 있도록 노력하면서 코딩해야한다.




© 2021. by hminkim