준비하는 대학생

[코드트리 챌린지] 1주차 - 자리 수 단위로 완전탐색 / Carry 피하기 2 본문

Algorithm/코드트리 블로그 챌린지

[코드트리 챌린지] 1주차 - 자리 수 단위로 완전탐색 / Carry 피하기 2

Bangii 2023. 9. 6. 22:45

자리 수 단위로 완전탐색 / Carry 피하기 2

https://www.codetree.ai/cote/17/problems/escaping-carry-2?&utm_source=clipboard&utm_medium=text 

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

나의 답

import itertools

n = int(input())
numbers = [int(input()) for _ in range(n)]
max_number = -1

for n1,n2,n3 in itertools.combinations(numbers,3):
    carry = False
    for i in range(5):
        s = n1/10**i % 10 + n2/10**i % 10 + n3/10**i % 10
        if s >= 10:
            carry = True
            break
    if not carry:
        s = n1+n2+n3
        max_number = s if s > max_number else max_number
print(max_number)

코드트리에서는 for문의 중첩을 통해 문제를 해결하였지만 파이썬에서는 itertools를 사용해 combinations를 쉽게 만들 수 있다. 

오랜만에 코딩테스트를 공부하면서 내 실력이 한층 부족하다는 점을 느꼈고, 이번 1주차 동안 현대자동차 커리큘럼에 있는 완전탐색 알고리즘 중에 자리 수 단위로 완전탐색을 공부하였다. 

해당 커리큘럼 문제를 다 풀어보고 난 뒤 실력진단을 했을 때 처음 했을 때보다 더 높은 점수를 얻을 수 있었고 기본적이 코딩테스트 감각을 올릴 수 있었다. 실력진단을 마친 뒤 코드트리에서 내가 부족한 부분에 대해 보충할 수 있는 커리큘럼을 제안하였는데 다음 주에는 해당 커리큘럼을 해볼 예정이다.

Comments