티스토리 뷰

반응형

 - 백준 알고리즘  : https://www.acmicpc.net/problem

문제

  • 다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.

  • 다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최소값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)

입력

  • 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다.

출력

  • 첫째 줄에 필요한 세트의 개수를 출력한다.


예제 입력

  • 9999

예제 출력

  • 2


곰가드의 코드

  • a = input()

    a = a.replace('6','9')

    res = 0

    for i in range(10):

        cnt = a.count(str(i))

        if i == 9:

            cnt = int(cnt/2)+cnt%2

        if res < cnt:

            res = cnt

    print(res)


참고할 파이썬 코드

  • 1. 기본 제공함수

    • 버림 - int 사용

      • int(3.5) -> 3

    • 반올림, 올림 - round 사용

      • 파이썬의 round 반올림은 우리가 일반적으로 아는 반올림과 차이가 있습니다.

      • round( 0.5 ) = 0

        round( 1.5 ) = 2

        round( 2.5 ) = 2

        round( 3.5 ) = 4

        round( 4.5 ) = 4

        round( 5.5 ) = 6

        round( 6.5 ) = 6

        round( 7.5 ) = 8

        round( 8.5 ) = 8

        round( 9.5 ) = 10

      • 끝자리가 0.5 일 경우 결과값이 짝수가 되도록 올리거나 내림을 진행합니다. 그 외의 경우에는 일반적인 반올림 처럼 진행합니다.

      • 파이썬에서는 기본적으로 제공하는 올림함수는 없습니다. 따라서 기존 round 함수를 응용하여 올림의 효과를 만들어내야 합니다.

        • round( a + 0.5 ) 를 사용해서 올림의 효과를 만들어 냅니다.

        • round( 0.4 ) = 0 -> round( 0.4 + 0.5 ) = 1

        • round( 0.8 ) = 1 -> round( 0.8 + 0.5 ) = 1

  • 2. math 라이브러리 사용하기
    • 파이썬에는 math 라는 라이브러리가 있습니다. 수학 계산관련 함수들을 제공하는데요, 그 중에 floor, ceil, round 함수가 있습니다. floor 는 버림, ceil 은 올림, round 는 반올림 함수 입니다.
    • import math
      • math.floor( 3.8 ) -> 3
      • math.ceil( 3.3 ) -> 4
      • math.round( 3.3 ) -> 3



반응형

'#Archive' 카테고리의 다른 글

[SQL] 2. 기본중의 기본 - SELECT 문  (0) 2017.12.06
6064. 카잉 달력 - 최소공배수  (0) 2017.12.06
2775. 부녀회장이 될테야  (0) 2017.12.04
05. 자동차 평가 데이터  (0) 2017.12.03
11050. 이항 계수 1  (0) 2017.12.01
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함