코딩공부/프로그래머스

※[프로그래머스]Lv.1 대충 만든 자판 C#

usingsystem 2023. 6. 12. 10:17
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/160586

 

프로그래머스

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

programmers.co.kr

소스코드

using System;

public class Solution
{
    public int[] solution(string[] keymap, string[] targets)
    {
        int[] answer = new int[targets.Length];

        int count = 0;
        for (int i = 0; i < targets.Length; i++)
        {
            foreach (char c in targets[i])
            {
                count = FindMin(keymap, c);

                if (count == -1)
                {
                    answer[i] = -1;
                    break;
                }
                answer[i] += count;
            }
        }
        return answer;
    }

    int FindMin(string[] keymap, char c)
    {
        int min = 9999;
        for (int i = 0; i < keymap.Length; i++)
        {
            int idx = Array.IndexOf(keymap[i].ToCharArray(), c);

            if (idx == -1)
                continue;

            if (min > idx)
                min = idx;
        }
        return min == 9999 ? -1 : min + 1;
    }
}
728x90