Leta Learns

[모각코] 220810 Today I Learned 본문

HUFS/HUFS 모각코 캠프

[모각코] 220810 Today I Learned

leta 2022. 8. 10. 23:02

<백준 1107번 - 리모컨>

 

간만에 골드 하나 풀어볼까 하고 선택한 문제.

왠지 풀 수 있을 것 같아서 선택한건데 모각코 시간 안에 못 풀었다.

풀면서도 이게 아닌데.. 싶은 생각이 들었지만, 일단 풀기 시작했으니 이 방식으로 맞춰보고 싶었다.

그냥 제출했는데 메모리초과가 발생해서 조금 더 생각해보고 안 되면 구글링해서 다른 사람들 풀이를 참고해서 다시 풀어볼 생각이다.

 

import sys
input = sys.stdin.readline
sys.setrecursionlimit(10**6)

def minus(mans, n):
    mans += 1
    n -= 1
    ns = list(str(n))
    if all([(i not in ns) for i in x]):
        return mans
    else:
        mans = minus(mans, n)
    return mans

def plus(pans, n):
    pans += 1
    if pans <= cal[0]:
        n += 1
        ns = list(str(n))
        if all([(i not in ns) for i in x]):
            return pans
        else:
            pans = plus(pans, n)
        return pans
    else:
        return

n = int(input())
m = int(input())
ns = list(str(n))
ans = len(ns)
if m != 0:
    x = list(input().split())

    if n == 100:
        print(0)
    else:
        cal = []
        if any([(i in ns) for i in x]):
            cal.append(minus(ans, n))
            cal.append(plus(ans, n))
            if cal[-1] == None:
                print(cal[0])
            else:
                print(min(cal))
else:
    print(ans)

언뜻 봐도 말도 안 되는 코드

Comments