본문 바로가기
취준! ✒/현대차, 현대모비스

[코테준비] 현대차&현대모비스: [21년 재직자 대회 예선] 전광판

by deepbluechip 2023. 8. 30.
728x90

현대자동차 계열은 자체 코딩테스트 사이트가 있다. programmers 처럼 안에서 돌려볼 수 있는 것이 있고, 코드 자체는 백준처럼 import sys를 해서 받아야한다. 그런데 python3.7이 아닌 3.6을 지원해서 그런지 뭔가 조금 다르게 느껴진다. 

현대 코딩테스트 사이트: https://softeer.ai/index.do

 

Softeer - 현대자동차그룹 SW인재확보플랫폼

<!-- .item : * 흰색 스타일 : 클래스 style--white 추가 * 왼쪽정렬 스타일 : 클래스 leftType 추가 (가운데정렬이 default입니다) .btn-alink (Learn more버튼): * 흰색 스타일 : 클래스 st-white 추가 --> Softeer is for soft

softeer.ai

 

저번학기 데이터사이언스 직군의 코테는 AI과제였다고 하는데, 이번에는 알고리즘인것 같다. 3문제에 120분 !  (작년 AI과제는 엄청 쉬웠다는 소문이 있다.!) 작년은 이번처럼 알고리즘 문제였던 것 같다. 

 

백준이나 프로그래머스처럼 다른 사람이 푼 답안을 볼 수 있는 곳이 있을 것 같은데 못찾았다..

오늘 풀어볼 문제! 

# [21년 재직자 대회 예선] 전광판 문제이다. 

https://softeer.ai/practice/info.do?idx=1&eid=624 

import sys


# input 받기
n = int(sys.stdin.readline())
numbers=[]
for i in range(n):
    numbers.append(list(sys.stdin.readline().split()))

# 재료 준비
one =[0,0,1,0,0,1,0]
two =[0,1,1,1,1,0,1]
three = [0,1,1,0,1,1,1]
four = [1,0,1,0,1,1,0]
five = [1,1,0,0,1,1,1]
six =[1,1,0,1,1,1,1]
seven = [1,1,1,0,0,1,0]
eight = [1,1,1,1,1,1,1]
nine = [1,1,1,0,1,1,1]
zero = [1,1,1,1,0,1,1]

libb = [zero, one, two, three, four, five, six, seven, eight, nine]
# 풀기
# print(eight[2:])
for now in numbers:
    click = 0
    f = len(now[0])
    s = len(now[1])
    if f>s:
        # 앞에 끄는데 사용
        onlyoff = now[0][:(f-s)]
        firstleft = now[0][(f-s):]
        for nn in onlyoff:
            click += sum(libb[int(nn)])
        
        # 나머지 비교
        for i in range(s):
            a = int(firstleft[i])
            b= int(now[1][i])
            for j in range(7):
                if libb[a][j] != libb[b][j]:
                    click+=1

    elif f==s:
        # 비교
        for i in range(s):
            a = int(now[0][i])
            b= int(now[1][i])
            for j in range(7):
                if libb[a][j] != libb[b][j]:
                    click+=1
    else:
        # print("0:", click)
        #앞에 켜는데 사용
        # print("back long")
        onlyon = now[1][:(s-f)]
        secondleft = now[1][(s-f):]
        # print("onlyon, secondleft", onlyon, secondleft)
        for nn in onlyon:
            click += sum(libb[int(nn)])
            # print("1:", click)
        # 나머지 비교
        for i in range(f):
            a= int(now[0][i]) 
            b = int(secondleft[i]) 
            for j in range(7):
                if libb[a][j] != libb[b][j]:
                    click+=1
                    # print("2:",click)

    print(click)
728x90