본문 바로가기
Algorithm/완전탐색

[프로그래머스 lv1] 대충 만든 자판

by HANNI하니 2023. 4. 24.

사용 언어 - Python3

문제 - 대충 만든 자판

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

정답

새 def 함수를 만들어 활용하기 (정답 맞춘 여부 X)

1. 인덱스 반환 함수 ,check(keylist,character)

keylist에서 character의 인덱스를 찾아 값을 반환해주는 함수

1부터 시작하기 때문에 +1을 해준다.

 

2. 각 target의 글자들에 대해 character로 저장한후, 각 key 값에 포함되어 있는 지 확인한다.

 

if character in set(keylist):

cur = min(cur, check(keylist,character)

 

3. 예외 처리

키의 개수가 1개부터 최대 100개니까 cur = 101을 기본

최대 범위를 초과한 경우 즉, 101이 tep_list에 있는 경우, answer 리스트에 -1을 append한다.

def check(keylist, character):
    return keylist.index(character)+1

def solution(keymap, targets):
    answer = []
    
    for target in targets:
        tmp_list = []
        
        for idx in range(len(target)):
            character = target[idx]
            cur = 101
            for keylist in keymap:
                if character in set(keylist):
                    cur = min(cur, check(keylist,character))
            tmp_list.append(cur)

        if 101 in tmp_list:
            answer.append(-1)
        else:
            answer.append(sum(tmp_list))

    return answer

 

 

 

레퍼런스

  • 정답 참고
 

[프로그래머스] 대충 만든 자판 (Python)

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/160586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁

chanmuzi.tistory.com

  • 정답 깃허브
 

GitHub - yyeongeun/codingtest: 코딩테스트 공부

코딩테스트 공부. Contribute to yyeongeun/codingtest development by creating an account on GitHub.

github.com

 

댓글