[백준 / 1475] 방 번호
in Problem Solving on BaekJoon
날짜: 2021년 5월 22일
소요 시간: 56분 39초
카테고리: 수학 문제
태그: silver.5
, 1475
, 파이썬
입출력 예시
예제 입력 | 예제 출력 |
---|---|
9999 | 2 |
내가 적은 코드
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))
반성
- 자료형이 계속 변하게 코드를 짜다보니 자료형이 헷갈려 오류를 많이 내서 시간을 많이 잡아먹었다.
- 반복문 하나 없이 같은 정답을 출력하는 베스트 코드처럼 시간복잡도를 줄일 수 있도록 노력하면서 코딩해야한다.