[백준] 방 번호

cheeeese·2022년 4월 13일
0

코딩테스트 연습

목록 보기
78/151
post-thumbnail

📖 문제

https://www.acmicpc.net/problem/1475

💻 내 코드

n=int(input())

mlist=list(str(n))
cnt=[0]*10

for i in range(len(mlist)):
    num=int(mlist[i])
    if num==6 or num==9:
        cnt[6]+=1
    else:
        cnt[num]+=1
if cnt[6]%2==0:
    cnt[6]=cnt[6]//2
else:
    cnt[6]=cnt[6]//2+1

print(max(cnt))

💡 풀이

  • cnt라는 list에 0을 10개 저장

  • 입력된 n을 한 글자씩 돌면서 해당하는 수와 같은 인덱스의 cnt의 수를 1씩 증가

  • 6과 9는 뒤집어서 사용 가능하므로

    • 6또는 9가 나오면 6을 증가
    • 마지막에 cnt의 인덱스 6의 수가 짝수라면 그 수의 몫을 저장
    • 홀수라면 한 세트 더 필요하므로 1을 더함
  • cnt의 최댓값이 필요한 세트의 최소 개수

0개의 댓글