Create Opportunities

[알고리즘] 대충 만든 자판 본문

알고리즘

[알고리즘] 대충 만든 자판

kimjaeyoon 2023. 3. 2. 18:44

Lv. 1

내 풀이 (정답)

def solution(keymap, targets):
    result = []
    
    for word in targets:
        click_sum = 0
        for spell in word:
            flag = False
            click = 101
            for key in keymap:
                if spell in key:
                    click = min(key.index(spell)+1, click)
                    flag = True  # 가능?
            if not flag:
                click_sum = -1; break
            click_sum += click
        
        result.append(click_sum)
    return result

1. targets의 단어를 순차적으로 순회.

2. 그 단어의 spell을 순차적으로 순회

3. keymap의 단어들도 순차적으로 순회

4. 2의 spell이 3의 단어에 포함돼? 그러면 눌러야지. 누르되, 다른 keymap 단어보다 조금만 누를 수 있는지 확인해야함.

5. flag는 spell을 keymap에서 누를 수 없는 경우를 의미

6. targets의 한 word를 돌면서 click_sum을 계속 더해줌. 최소 몇 번 눌러야 이 단어 만들 수 있는가.

 

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges

'알고리즘' 카테고리의 다른 글

[알고리즘] 뒤에 있는 큰 수 찾기  (0) 2023.03.06
[알고리즘] 둘만의 암호  (1) 2023.03.06
[알고리즘] 숫자 변환  (0) 2023.03.02
[알고리즘] 덧칠하기  (0) 2023.03.02
[알고리즘] 카드 뭉치  (0) 2023.03.02