[백준 1475] 방 번호

이말감·2022년 3월 22일
0

백준

목록 보기
13/49

문제

링크

코드

  • 첫 번째 작성 코드
n = input()

sets = 1
number = [0,1,2,3,4,5,6,7,8,9]

for num in n :
    num = int(num)
    if num in number :
        number.remove(num)
        continue
    else :
        if num == 6 :
            if 9 in number :
                number.remove(9)
                continue
        elif num == 9 :
            if 6 in number :
                number.remove(6)
                continue
        sets += 1
        number.extend([0,1,2,3,4,5,6,7,8,9])
        number.remove(num)
        continue
    
print(sets)
  • 두 번째
n = input()

sets = [0] * 10

for num in n :
    if int(num) == 6 or int(num) == 9 :
        if sets[6] < sets[9] :
            sets[6] += 1
        else :
            sets[9] += 1
    else :
        sets[int(num)] += 1

print(max(sets))

풀이

첫 번째 코드는 그냥 냅다 수가 없으면 다시 0부터 9까지 배열을 추가하고 진행할 수 있도록 풀었다. 풀면서도 이렇게 풀면 안된다는 생각을 하면서 풀었다..^^
그래서 다른 사람들의 풀이를 살펴봤고, 다시 두 번째 코드처럼 작성하고 완료할 수 있었다.
먼저 배열의 숫자를 비교하면서 +1을 해주고, 6 혹은 9일 경우 배열[6]과 배열[9] 값이 더 작은 곳에 +1을 해주었다.
그 다음 배열에서 가장 큰 숫자가 무엇인지 출력하면 된다.

profile
전 척척학사지만 말하는 감자에요

0개의 댓글