[문제 설명]
String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.
[제한 사항]
seoul은 길이 1 이상, 1000 이하인 배열입니다.
seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.
"Kim"은 반드시 seoul 안에 포함되어 있습니다.
[입출력 예]
["Jane", "Kim"] | "김서방은 1에 있다" |
풀이과정
import java.util.*;
class Solution {
public String solution(String[] seoul) {
Map<Integer, String> map = new HashMap<Integer, String>();
for(int i =0; i< seoul.length; i++)
{
map.put(i, seoul[i]);
//1. jane
//2. kim
}
for(int i = 0; i<map.size(); i++)
{
if(map.containsValue("Kim"))
{
idx = i;
}
}
}
처음에 문제를 보고 아, MAP 에 넣고 값 돌리면 되겠다 해서 아래처럼 풀었더니 테스트케이스는 다 맞는데
효율성 0점이 떴다.
생각해보니 왜 굳이 다시 MAP에 넣었지 ? 하고
class Solution {
public String solution(String[] seoul) {
String answer = "";
for(int i = 0; i < seoul.length; i++){
if(seoul[i].equals("Kim")){
answer = "김서방은 " + i + "에 있다";
break;
}
}
return answer;
}
}
[느낀점]
위에랑 같이 풀어서 효율성 만점으로 통과 !
예전엔 그냥 무조건 테스트케이스만 맞으면 와 ! 풀었다 했고,
회사에서 개발을 해서 기능이 구현되기만 하면 됐다고 생각했는데
시간이 지날수록 코드 품질이 중요하다는 생각이 든다.
-
품질 좋은 코드를 짤 수 있는 개발자가 되고싶다.
'알고리즘' 카테고리의 다른 글
프로그래머스 lv1 - 성격 유형 검사하기 (0) | 2022.08.22 |
---|---|
프로그래머스 - 스킬 체크 테스트 lv 1 :: 주어진 수가 1이 될 때까지 (0) | 2022.06.12 |